Parent - child Tables (query to sum up)
Hello people:
Hope you're all well today. Here is my sample data:
WITH the fleet (fl_id, veh_id)
(
SELECT 95, "T02" dual UNION ALL
SELECT 105, "T22" OF THE double
),
fleet_keys (id_pk, fl_id_fk, key_number) AS
(
SELECT 294, 95, 'ADB185' FROM dual UNION ALL
SELECT 295, 95, 'ADB186' FROM dual UNION ALL
SELECT 296, 95, 'ADB187' FROM dual UNION ALL
SELECT 297, 105, 'BCB205' FROM dual UNION ALL
SELECT 298, 105, 'BCB206' FROM dual UNION ALL
SELECT 299, 105, 'BCB207' FROM dual
)
SELECT fl.veh_id, flk.key_number FROM floating fl
LEFT JOIN fleet_keys ON fl.fl_id = flk.fl_id_fk flk
This simple query with a left join on the primary key to foreign key produces the following data set:
VEH_ID | KEY_NUMBER |
T02 | ADB185 |
T02 | ADB186 |
T02 | ADB187 |
T22 | BCB205 |
T22 | BCB206 |
T22 | BCB207 |
However, I would like my set of data to be shaped like this:
VEH_ID | KEY_NUMBER |
T02 | |
ADB185 | |
ADB186 | |
ADB187 | |
T22 | |
BCB205 | |
BCB206 | |
BCB207 |
Is there an easy way to do this? Thanks for your help.
Aqua
Do not try to solve the problems of presentation of the DB. When you view the output? For example, in SQL, you can use BREAK command.
Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options SQL> break on veh_id SQL> SQL> WITH fleet (fl_id, veh_id) AS 2 ( 3 SELECT 95,'T02' FROM dual UNION ALL 4 SELECT 105,'T22' FROM dual 5 ), 6 fleet_keys (id_pk, fl_id_fk, key_number) AS 7 ( 8 SELECT 294, 95, 'ADB185' FROM dual UNION ALL 9 SELECT 295, 95, 'ADB186' FROM dual UNION ALL 10 SELECT 296, 95, 'ADB187' FROM dual UNION ALL 11 SELECT 297, 105, 'BCB205' FROM dual UNION ALL 12 SELECT 298, 105, 'BCB206' FROM dual UNION ALL 13 SELECT 299, 105, 'BCB207' FROM dual 14 ) 15 SELECT fl.veh_id, flk.key_number FROM fleet fl 16 LEFT JOIN fleet_keys flk ON fl.fl_id = flk.fl_id_fk 17 ; VEH KEY_NU --- ------ T02 ADB185 ADB186 ADB187 T22 BCB205 BCB206 BCB207 6 rows selected.
Tags: Database
Similar Questions
-
ADF Parent-child tables of rules
Hello
I use JDeveloper and ADF 12.1.3. Now, I have a set of related tables, and each of them have only a child table.
I have a jsf page master / detail for each child table. Inside it, I can insert a row in the parent table and several rows in the child table. Commit the button is clicked validate monkey for the booth tables. Link between the master (parent table) and retail (child table) is done via the partnership link and view for the user interface.
Now, here's the rule I would apply: I can't commit newly created at the table parent without at least a new inserted row in child table.
Because I have several parent-child tables in this case of use, I wanted to replace the EntityImpl class and add newly created to each parent table class, so I bussines logic in one place for this tables.
We will look and taste to the table of one of the parents (not overloaded class EntityImpl):
The Interior has generated parent EO class
@Override
{} public void beforeCommit (TransactionEvent transactionEvent)
TODO implement this method
If (! validateParentChildNumber()) {}
throw new local ("not allowed.");
}
super.beforeCommit (transactionEvent);
}
public boolean validateParentChildNumber() {}
If (getParentChild (). GetRowCount() > 0)
Returns true;
on the other
Returns false;
}
This works well. If I inserts a row in the parent table and one or more rows in the child table passes validation. But if I get a line inside the parent table and no line of children tables I'm not allowed message in my browser.
So here's where problem read. Once I'm getting now authorized message, no matter if I insert the new line of Herald, I cannot commit until what I restar my app. Why? Because now, I constantly have this message:
It's like I can't hire the existing parent row I inserted before the child missing line. Why is this happening? I should replace postChanges method and what to put in it?
Thx a lot
Yes, you should do it in all cases, but point of my post is - put this code in the method of beforeCommit() of the primary entity. Only you need to do in beforeCommit(), is to count the child related entities.
In your java master entity impl class, you will have the method which returns a RowIterator with associated children, entities, something like that
public getChildsEO() {} RowIterator
return (RowIterator)...;
}
then, just call this method in beforeCommit() and see if there is at least a child entity...
You have a point?
-
Sum of a stand-alone parent-child table
I have two tables - a 'key' table containing a parent-child relationship of multi-layer and a table 'amount' that contains the keys for the nodes in the key as well as table of numeric values (for example the amounts).
I want a query that returns each line in the table of key as well as the sum of the amount amounts of the table for the set of nodes of this key (so the root node would be the sum of all values of quantity).
Here's what I mean: I have two tables, the KEY and the AMOUNT
KEY has two columns, keys, and parent_key; key and parent_key have a relationship CONNECT BY parent_key = prior key (with null for the root parent_key):
AMOUNT a two columns, keys, and amount; key points to KEY.key and amount is a value for that particular keyKEY PARENT_KEY 0 null 1 0 2 0 3 0 1A 1 2A 2 2B 2 3A 3 3B 3 3C 3 1A1 1A 1A2 1A 2A1 2A 2A2 2A 2B1 2B 3A1 3A 3A2 3A 3C1 3C 3C2 3C
(Note that all key values are leaf nodes in the KEY table)
What I want is a result that looks like this, where the amount of each key is the sum of the amounts of its possible keys sheetKEY AMOUNT 1A1 1 1A2 2 2A1 3 2A2 4 2B1 5 3A1 6 3A2 7 3C1 8 3C2 9
For example, the value of the key 2 a, 7, is the sum of the values of 2 a 1 and a 2, 2; key value of 3 is the sum of 3 a 1, a 3, 2, 3, C 1 and 2 of 3.KEY AMOUNT 0 45 1 3 2 12 3 30 1A 3 2A 7 2B 5 3A 13 3B 0 3C 17 1A1 1 1A2 2 2A1 3 2A2 4 2B1 5 3A1 6 3A2 7 3C1 8 3C2 9
Is it possible to do this with a single query?
The idea I came with is, do a select on the KEY with a "Key CONNECT_BY_PATH" column so that each line contains a string that contains the keys of all his ancestors and then do a join on AMOUNT with IN the CONNECT_BY_PATH amount.key column; However, with a large amount of data, it takes a little time. Is there a way faster / more obvious to achieve?OK you have almost everything you need. Outer join just your two tables, and then perform a hierarchical query, noting the key root of each tree. Then group the data set resulting:
with t1 as (select '0' "KEY", '' parent_key from dual union all select '1', '0' from dual union all select '2', '0' from dual union all select '3', '0' from dual union all select '1A', '1' from dual union all select '2A', '2' from dual union all select '2B', '2' from dual union all select '3A', '3' from dual union all select '3B', '3' from dual union all select '3C', '3' from dual union all select '1A1', '1A' from dual union all select '1A2', '1A' from dual union all select '2A1', '2A' from dual union all select '2A2', '2A' from dual union all select '2B1', '2B' from dual union all select '3A1', '3A' from dual union all select '3A2', '3A' from dual union all select '3C1', '3C' from dual union all select '3C2', '3C' from dual ), t2 as (select '1A1' "KEY", 1 amount from dual union all select '1A2', 2 from dual union all select '2A1', 3 from dual union all select '2A2', 4 from dual union all select '2B1', 5 from dual union all select '3A1', 6 from dual union all select '3A2', 7 from dual union all select '3C1', 8 from dual union all select '3C2', 9 from dual ), t3 as ( select t1.key, parent_key, amount from t1 left join t2 on t1.key = t2.key ), t4 as ( select CONNECT_BY_ROOT key root_key , level lv , t3.* from t3 connect by prior t3.key = parent_key ) select root_key "KEY", sum(amount) amount from t4 group by root_key order by length(root_key), root_key;
-
Blockages with parent/child tables
Guys,
We have a parent-child of tables in our database with the DDL below:
CREATE TABLE 'ACCOUNT '.
(SELECT 'ACCOUNT_ID' VARCHAR2 (32 BYTE) NOT NULL,)
X, Y, Z,...),
'XPK_ACCOUNT' CONSTRAINT PRIMARY KEY ('ACCOUNT_ID');
CREATE TABLE ACCOUNT_PARTITION ".
(SELECT 'ACCOUNT_ID' VARCHAR2 (32 BYTE) ENABLE NOT NULL, "BALANCE" NUMBER (5.0) NOT NULL,)
X, Y, Z,...),
'XPK_ACCOUNT_PARTITION' CONSTRAINT PRIMARY KEY ('ID_COMPTE', 'BALANCE')
KEY FOREIGN CONSTRAINT 'ACCOUNT_PARTITION_FK1' ('ACCOUNT_ID')
SELECT THE 'ACCOUNT' ('ACCOUNT_ID') REFERENCES);
"Lately, we cross " ""ORA-00060: Deadlock detected while you wait for resources ' errors while DELETING in the tables above. Please note that the tables of the child is not any clue except KP index.
Could someone please suggest resolution for us to minimize the error of blocking?
Respect,
Bugs
Imagine you remove account, Oracle must verify there is no record of the child in ACCOUNT_PARTITION, this is because as your FK is restrict the deletions (do not allow the removal if there are child records). As ACCOUNT_PARTITION. Account_id is indexed so it will be an exclusive table lock to find this, locks the table.
Another way of thinking is, imagine that you have performed the following query without and ACCOUNT_ID index:
Select *.
of ACCOUNT_PARTITION
where ACCOUNT_ID =
He SHOULD do a full table scan right? Well well, even on a deletion of the parent. It attempts to identify lines for the purpose of blocking,
As a general rule, it is always a good idea to index FKs.
-
Update the data to uppercase in the parent/child tables
Hi gurus!
In production, we have a table product and that is in reference by many tables making parent child relationship. By mistake, we realized last month some products have been added to lowercase and now we have a request to update all these product codes uppercase so that existing code that use these tables have no impact. Appreciate if you can give an idea about how can I update the existing data in the table parent uppercase as well as child records?
Concerning
SriAre the product code that you need to update what is stored in the tables of children? If Yes, then you must do it in several steps, something like:
Identify the child tables
SELECT table_name, constraint_name FROM user_constraints WHERE r_constraint_name = (SELECT constraint_name FROM user_constraints WHERE table_name = 'PRODUCT_TABLE' and constraint_type = 'P');
Create new product of upper-case code in the product table:
INSERT INTO product_table SELECT UPPER(product_code), other_columns FROM product_table WHERE product_code <> UPPER(product_code);
Update the children tables for caps product codes
UPDATE child1 SET product_code = UPPER(product_code) WHERE product_code <> UPPER(product_code);
Finally, remove the tiny product_table product codes
DELETE FROM product_table WHERE product_code <> UPPER(product_code);
John
-
Parent - child Table Insert Trigger
Hello
I need assistance with an Insert trigger. I want to insert field data 'Table A' "Table B" based on a PK and FK. Someone at - it examples of code?
< code >
Table A
SEQ_NO - PK
TO FIELD
FIELD B
C FIELD
Table B
FK_SEQ_NO
FIELD B
C FIELD
< code >
When the data is stored in the 'table A' I need fill out the 'FK_SEQ_NO', based on the saved value 'Table A' "SEQ_NO" as well as the values of FIELD B and C FIELD recorded in Table B.
Any help is really appreciated, thank you.Hi Charles,
It depends exactly how you created your trigger.
In my trigger I fill WORK_PACKAGE_ID (PK) in the parent table using rmdb_work_packages_seq. NEXTVAL. The insert statement then uses: NEW. WORK_PACKAGE_ID to fill the coumn FK in table child.
You can also use ITEM_ID_SEQ. CURRVAL who will repeat the last number that was created, and I suppose that you use to fill A table.
Hope that helps,
Martin -
Hello
Oracle version: Oracle Database 11 g Release 11.1.0.7.0 - 64 bit Production
The version of SQL Developer: 4.0.2.15 - 15.21 build
I have a question about drawing diagram, entity-relationship with SQL Developer & I would be grateful if you could kindly give me a helping hand.
I would like to draw an entity-relationship diagram in order to better visualize the relationship between multiple tables. After a google search, I found the following interesting article indicating the procedure to be followed:
http://www.Oracle.com/technetwork/issue-archive/2014/14-may/o34sqldev-2193423.html
(What I need and I'm trying to produce is Figure 4 in the article above)
I made exactly as stated in the article & apparently everything has worked well enough, in other words, I had several UML as rectangles showing columns of tables, their data types, primary and
foreign key and the arrows indicating the link between each parent/child table.Later, I tried to do the same thing on a different oracle instance and a different database by using the same procedure. Yet, something strange happened this time. Developer SQL printed on-screen tables, once again,.
inside the rectangles with types, keys,... but, there was no arrow showing the link between the tables, I just saw on the grid the selected tables but without any association/relationship shown (as a symbol of an arrow)
between them.I repeated the procedure on another instance of development, with a few test tables that I created with primary and foreign keys just to make sure I had followed the procedure correctly. Once again
the test was successful, but when I repeated the test on another instance, the same problem persisted, in other words, no arrow (relationship) between tables.
Any idea?
This could be due to a lack of privilege on the instance? If Yes, what should be granted in what about roles?
Thanks in advance
I think that what you see is that not all databases have foreign keys - applications hard-coding relationships vs let the database to handle this.
Connect to this instance different oracle and browse the tables affected - have FK constraints defined on them?
-
Stuck on a sql query to search for records that have the same parent child records
Oracle 10 g 2 Enterprise Edition.
Hello
I'm writing a logic to find records in a parent table, who have the same values in a child table.
This is part of a larger application, but I am stuck on that part for now, so I have mocked some of the below simplified tables to capture the heart of the
the problem is that I'm stuck.
Let's say I have a responsible parent, child employee table table and there are a number of many relationships between them.
The aptly named Join_Table manages the relationship between them. If a manager can manage several employees, an employee can be managed by
many managers.
I have a feeling it's stupidly easy, but it seems to me having a bad episode of brain freeze today!
If I ask for Manager John, so I want to find other managers who manage the exact list and even employees.-- parent table CREATE TABLE manager ( id number primary key, name varchar2(100)); -- child table CREATE TABLE employee ( id number primary key, name varchar2(100)); -- link table CREATE TABLE join_table ( manager_id NUMBER, employee_id NUMBER, CONSTRAINT join_table_pk PRIMARY KEY (manager_id, employee_id), CONSTRAINT manager_fk FOREIGN KEY (manager_id) REFERENCES manager(id), CONSTRAINT employee_fk FOREIGN KEY (employee_id) REFERENCES employee(id) ); -- Insert some managers INSERT INTO manager (id, name) VALUES (1, 'John'); INSERT INTO manager (id, name) VALUES (2, 'Bob'); INSERT INTO manager (id, name) VALUES (3, 'Mary'); INSERT INTO manager (id, name) VALUES (4, 'Sue'); INSERT INTO manager (id, name) VALUES (5, 'Alan'); INSERT INTO manager (id, name) VALUES (6, 'Mike'); -- Insert some employees INSERT INTO employee (id, name) VALUES (101, 'Paul'); INSERT INTO employee (id, name) VALUES (102, 'Simon'); INSERT INTO employee (id, name) VALUES (103, 'Ken'); INSERT INTO employee (id, name) VALUES (104, 'Kevin'); INSERT INTO employee (id, name) VALUES (105, 'Jack'); INSERT INTO employee (id, name) VALUES (106, 'Jennifer'); INSERT INTO employee (id, name) VALUES (107, 'Tim'); -- Insert the links -- John manages Paul, Simon, Ken INSERT INTO join_table (manager_id, employee_id) VALUES (1, 101); INSERT INTO join_table (manager_id, employee_id) VALUES (1, 102); INSERT INTO join_table (manager_id, employee_id) VALUES (1, 103); -- Bob manages Paul, Simon, Kevin, Jack INSERT INTO join_table (manager_id, employee_id) VALUES (2, 101); INSERT INTO join_table (manager_id, employee_id) VALUES (2, 102); INSERT INTO join_table (manager_id, employee_id) VALUES (2, 104); INSERT INTO join_table (manager_id, employee_id) VALUES (2, 105); -- Mary manages Jennifer, Tim INSERT INTO join_table (manager_id, employee_id) VALUES (3, 106); INSERT INTO join_table (manager_id, employee_id) VALUES (3, 107); -- Sue manages Jennifer, Tim INSERT INTO join_table (manager_id, employee_id) VALUES (4, 106); INSERT INTO join_table (manager_id, employee_id) VALUES (4, 107); -- Alan manages Paul, Simon, Ken, Jennifer, Tim INSERT INTO join_table (manager_id, employee_id) VALUES (5, 101); INSERT INTO join_table (manager_id, employee_id) VALUES (5, 102); INSERT INTO join_table (manager_id, employee_id) VALUES (5, 103); INSERT INTO join_table (manager_id, employee_id) VALUES (5, 106); INSERT INTO join_table (manager_id, employee_id) VALUES (5, 107); -- Mike manages Paul, Simon, Ken INSERT INTO join_table (manager_id, employee_id) VALUES (6, 101); INSERT INTO join_table (manager_id, employee_id) VALUES (6, 102); INSERT INTO join_table (manager_id, employee_id) VALUES (6, 103); -- For sanity CREATE UNIQUE INDEX employee_name_uidx ON employee(name);
Answer should be Mike.
If I ask for Manager of Mary, the answer should be Sue.
This query will give me the list of managers who manage some of the same employees as John, but not the same employees accurate...
I thought about using set operations to find managers with a list of employees less than my employees is null and where my employees under their list of employees is null. But there must be an easier way more elegant.SELECT DISTINCT m.name AS manager FROM manager m, join_table jt, employee e WHERE m.id = jt.manager_id AND jt.employee_id = e.id AND e.id IN ( SELECT e.id FROM manager m, join_table jt, employee e WHERE m.id = jt.manager_id AND jt.employee_id = e.id AND m.name = 'John') ORDER BY 1;
Any ideas?
BTW, I need to run as a batch on tables with > 20 million rows so the efficiency of queries is key.What about...
WITH manager_list AS ( SELECT name, LTRIM(MAX(SYS_CONNECT_BY_PATH(id,',')) KEEP (DENSE_RANK LAST ORDER BY curr),',') AS employees FROM (SELECT m.name, e.id, ROW_NUMBER() OVER (PARTITION BY m.name ORDER BY e.id) AS curr, ROW_NUMBER() OVER (PARTITION BY m.name ORDER BY e.id) -1 AS prev FROM manager m, join_table jt, employee e WHERE m.id = jt.manager_id AND jt.employee_id = e.id AND m.name = :P_MANAGER) GROUP BY name CONNECT BY prev = PRIOR curr AND name = PRIOR name START WITH curr = 1 ), all_list AS ( SELECT name, LTRIM(MAX(SYS_CONNECT_BY_PATH(id,',')) KEEP (DENSE_RANK LAST ORDER BY curr),',') AS employees FROM (SELECT m.name, e.id, ROW_NUMBER() OVER (PARTITION BY m.name ORDER BY e.id) AS curr, ROW_NUMBER() OVER (PARTITION BY m.name ORDER BY e.id) -1 AS prev FROM manager m, join_table jt, employee e WHERE m.id = jt.manager_id AND jt.employee_id = e.id) GROUP BY name CONNECT BY prev = PRIOR curr AND name = PRIOR name START WITH curr = 1 ) SELECT a.* FROM manager_list m, all_list a WHERE m.employees = a.employees
Would be easier in 11g, but I do not have a facility here so this is based on 10g.
See you soon
Ben
-
Forgive my question. I am very new to Oracle.
How can I make sure that changes in the key primary supplier_id (concerning the supplier table) would also appear directly in the FOREIGN KEY (supplier_id) in the products table?
Is that not all the primary key and FOREIGN KEY on?
My paintings:
I created 2 tables and connect to apply in the data base referential integrity, as I learned.
CREATE TABLE - parent provider
(the numeric (10) of supplier_id not null,)
supplier_name varchar2 (50) not null,
Contact_Name varchar2 (50).
CONSTRAINT supplier_pk PRIMARY KEY (supplier_id)
);
CREATE TABLE - child products
(the numeric (10) of product_id not null,)
supplier_id numeric (10) not null,
CONSTRAINT fk_supplier
FOREIGN KEY (supplier_id)
REFERENCES beg (supplier_id)
);
I inserted the following text:
INSERT INTO provider
(supplier_id, supplier_name, contact_name)
VALUES
(5000, 'Apple', 'first name');
I expect that the supplier_id (5000) to the provider of the table also appears in the products table under key supplier_id having the same value which is 5000. But this does not happen.
How to get there?
Thanks in advance!
Hello
What is a foreign key in Oracle?
A foreign key is a way to ensure referential integrity in your Oracle database. A foreign key means that the values of a table must appear also in another table.
Ok!??
What is now the right way to implement referential integrity in your Oracle database that the values of a table must also be included in another table?
A foreign key referential integrity indeed enfore in ensuring that the value in the child table must have a corresponding parent key (otherwise you will encounter an error, as evidenced by "SomeoneElse"). However, it will never automatically insert a row in the other table.
If you are looking for a solution that automatically inserts a record in the other table, maybe you should go for triggers:
See:
-
Oracle query convert recursive parent-child level columns
Dear gurus,
I have a Hyperion extracted dimension table with my COA in a parent/child layout:
parent, child
Acc01, acc001
acc001, acc0001 etc.
I need to convert to the:
level 2, level 1, Level0
Acc01, acc001, acc0001 etc.
Please advise, need to feed table table schema for reporting.
Concerning
Yannis
with
data in the form of
(select "C01" parent, child 'C001' Union double all the)
Select 'C001', 'C0001' from dual union all
Select 'C001', 'C0002"dual union all
Select "C01", "C002' from dual union all
Select "C0001', 'C00001' from dual union all
Select "C00001', 'C000001' from dual union all
Select 'C000001', 'C0000001' from dual
)
Select leve1_1, level_2, level_3, level_4, level_5, level_6
from (select root0, lvl0, regexp_substr(path,'[^,]+',1,level) VAC, level lvl
of (lvl0 level select,
connect_by_root parent root0,
parent connect_by_root | path of SYS_CONNECT_BY_PATH (Child, ',')
from the data
where connect_by_isleaf = 1
Start with parent (select parent
data d
If not exists (select null
from the data
where child = d.parent
)
)
connect by prior child = parent
)
connect by level<=>=>
and prior root0 = root0
and prior lvl0 = lvl0
and prior sys_guid() is not null
)
Pivot (max (VAC) for lvl 1 as leve1_1, 2 level_2, 3 level_3, 4 level_4, 5 level_5, 6 level_6)
LEVE1_1 LEVEL_2 LEVEL_3 LEVEL_4 LEVEL_5 LEVEL_6 C01 C002 - - - - C01 C001 C0002 - - - C01 C001 C0001 C00001 C000001 C0000001 Concerning
Etbin
-
in the query and parent/child relationship
WITH the data AS
(
SELECT '213NY1' lfrom, NULL, '215ZVD' mi lto, "215ZV9 ' id, 1 January 2014' sdate, January 2, 2014' edate, 3 January, 2014 'mdate' January 5, 2014 medate double UNION ALL.
Lfrom SELECT NULL, '215ZVD' mi, id "213NY1", "215ZV9" lto 4 January 2014 'sdate', 6 January 2014 edate, January 7, 2014 'mdate', 8 January 2014 medate double UNION ALL
SELECT '216TVZ' lfrom, NULL, "213JW7" e "217LVQ" id lto, 21 January, 2014 'sdate' January 9, 2014 edate, 10 January 2014 'mdate', 11 January 2014 medate double UNION ALL
SELECT lfrom "215Y71", "217LVQ" lto, mi, "216TVZ" id "213JW7", 22 January, 2014 'sdate' January 23, 2014 edate, 24 January, 2014 'mdate' January 25, 2014 medate double UNION ALL
SELECT '234IJF' lfrom, NULL, "234YU" e "3IUED" id lto, 26 January 2014 'sdate', 27 January 2014 edate, 28 January 2014 'mdate', 29 January 2014 medate OF double
)
some lines have parent/child relationship and some does not. for example, the first two query (data) are link together. online, the value of lto (215ZV9) corresponds to the id value
in line 1. the value of lfrom in row1 (213NY1) corresponds to the value of online id.
the same scenario occurs in rows 3 and 4. 5th doesn't have any line which is a child. tier 5 is a single parent
I want to WRITE a query that gives the following result.
Mid id initial_date final_date
=======================================
215ZVD 215ZV9 1 January 2014 "January 5, 2014"
"215ZVD 213NY1 7 January 2014" January 6, 2014 "
"213JW7 217LVQ 21 January 2014 ' 11 January 2014"
"213JW7 216TVZ 24 January 2014 ' 23 January 2014"
"234YU 3IUED 26 January 2014 ' 27 January 2014"
ONLY WHEN there is a parent/child relationship, initial DATE AND follow the final data WHAT such as
FIRST date of deadline DATE
< Mdate > < EDate > - for child
< SDate > < MEDate > - for parent
WHEN there is no relationship of parent/child (e.g. ONLY a parent ROW) THEN
FIRST date of deadline DATE
< SDate > < EDate-> parent
can someone help me write a query for the above output
with tt AS
(SELECT a.*,
ROW_NUMBER () ON LV (MIDDLE ORDER BY SDATE PARTITION),
CASE
WHEN ID = NVL (ADVANCE (lto, 1) OVER (PARTITION BY Middle ORDER BY sdate), LAG (lfrom) OVER (ORDER BY sdate Middle PARTITION))
THEN 1
END flg
DATA one
)
SELECT THE MIDDLE,
ID,
CASE
WHEN flg IS NOT NULL
THEN
CASE
WHAT LV = 1
THEN SDATE
WHAT LV = 2
THEN mDATE
END
Of ANOTHER sdate
END INITIALDATE
CASE
WHEN flg IS NOT NULL
THEN
CASE
WHAT LV = 1
THEN mEDATE
WHAT LV = 2
THEN EDATE
END
Of ANOTHER edate
END FINALDATE
TT;
Output:
-------------
MID ID INITIALDATE FINALDATE
213JW7 217LVQ 21 January 2014 January 11, 2014
213JW7 216TVZ 24 January 2014 23 January 2014
215ZVD 215ZV9 January 1, 2014 5 January 2014
215ZVD 213NY1 January 7, 2014 6 January 2014
234YU 3IUED 26 January 2014 January 27, 2014
-
BULL, INSERTION IN THE PARENT TABLE AND THE CHILD TABLE
Hi all
We use bulk insert to improve performance. How to use this concept when I insert the records parent in table parent and child?
example... I have a procedure that accepts the array of student objects
each student object is defined as *(student name, student age, course_object_array) *.
the 3rd element course_object_array is defined as *(coursename,course fee,facultyname) *.
a student can be associated with several courses
Now, I have to insert the data into two tables namely students (studentname, studentage and student_number)
courses (course_id, coursename, fees, facultlyname, student_number)
I use sequences to fill the columns student_number and course_id.
If I use bulk insert, and insert all the records in the parent table how do I the association for each record of a child. How will I know what child folder must be associated with which of the parents?
Concerning
REDAraj_fresher wrote:
Hi thanks for the reply Solomon.I actually know about the bulk collect and for all...
Have you read that FOR ALL with in fact BULK COLLECT? It will allow you to bulk insert via for ALL with VOTING student_numbers attributed to each student placed in a collection. Then, you will use this collection collection of course list to fill the RACE table.
SY.
-
I got the exit for parent-child relationships
Select
LPAD (' ', 2 * level) | child
Of
prune_test
Start by
parent is null
connect
child precondition = parent
as
1
-12
-120
-124
-127
-712
-7122
-7125
-7127
But I want like
Parent child Child1 2 child3
1
1 12
1 12 120
1-12-124
1-12-127
1 12 712
1 12 712 7122
1 12 712 7125
1 12 712 7127
Can someone help me...
Thank you
Mani
Published by: Mani on November 4, 2010 18:54Do you just need a sys link by road
with prune_test as (select null parent, 1 child from dual union all select 1, 12 from dual union all select 12, 120 from dual union all select 12, 124 from dual union all select 12, 127 from dual union all select 12, 712 from dual union all select 712,71522 from dual union all select 712, 7125 from dual union all select 712, 7127 from dual ) select lpad(' ', 2*level) || child, sys_connect_by_path(child,' ') from prune_test start with parent is null connect by prior child=parent
LPAD('',2*LEVEL)||CHILD SYS_CONNECT_BY_PATH(CHILD,'') 1 1 12 1 12 120 1 12 120 124 1 12 124 127 1 12 127 712 1 12 712 71522 1 12 712 71522 7125 1 12 712 7125 7127 1 12 712 7127
-
in collaboration with JDev12.1.2.
I have a view object that is based on a query. I then another editable view object from an entity. 2 then have a link with a field view id. The VO being the parent and the VO entity based application shall name a child and having a 0.1 - 1 ratio. How can I display a table with each row in the table parent with a child, even if the child does not yet exist. I don't want to have to go and click a button create/insert for each record in the table.
I was finally able to get it figured out. I had to get rid of my request based on VO and create 2 entity with an association to the entity objects. I then created a VO using the 2 entities and the Association. Then when I created a table of the VO it displays blank fields for the (child table) that you could call it. Then to commit it inserted records children if I entered what anyone in the fields. I had a problem with them not fixing is not the ID that connected the 2 entities, but I managed to fix that in the file VORowImpl of java.
-
Get the parent-child hierarchy of column delimited
I've been on this forum once before, and someone helped me, so I hope I can get help again!
4-15-5987');
Thus, the hierarchy is divided on the hyphen. first parent being 4245, then the next value is-4 (including the hyphen) and what follows is - 1, for example
CREATE TABLE REGEXTEST ( ITEM VARCHAR(20)); INSERT INTO REGEXTEST (ITEM) VALUES ('4245-4'); INSERT INTO REGEXTEST (ITEM) VALUES ('4245-4-1'); INSERT INTO REGEXTEST (ITEM) VALUES ('4245-4-10'); INSERT INTO REGEXTEST (ITEM) VALUES ('4245-4-11'); INSERT INTO REGEXTEST (ITEM) VALUES ('4245-4-12'); INSERT INTO REGEXTEST (ITEM) VALUES ('4245-4-13'); INSERT INTO REGEXTEST (ITEM) VALUES ('4245-4-14'); INSERT INTO REGEXTEST (ITEM) VALUES ('4245-4-15'); INSERT INTO REGEXTEST (ITEM) VALUES ('4245-4-15-59A7'); INSERT INTO REGEXTEST (ITEM) VALUES ('4245-4-15-59D7'); INSERT INTO REGEXTEST (ITEM) VALUES ('4245-4-15-59F7'); INSERT INTO REGEXTEST (ITEM) VALUES ('4245-
I have to be able to bind-1, -4, 4245. Perhaps the simplest is to build a new table with a primary key where it is assigned the id of the parent to the child.
I just can't understand how to divide the individual elements and maintain the hierarchy. As previously mentioned, someone helped me with another part of the problem before where I needed to maintain the entire path of each child with the following query:select nvl(prior item,item) parent, nvl2(prior item,item,null) child from REGEXTEST connect by substr(item,1,instr(item,'-',-1) - 1) = prior item order by child,parent
Now, if I could extrapolate that into a new table:
CREATE TABLE FileHierarchy (ItemID INT NOT NULL PRIMARY KEY, ItemName varchar(50) NOT NULL, ParentID INT NULL);
ItemName is the 4245 or - 4 or - 1 (only) - Yes, including the hyphen.
The ID of the parent-1 would be the ID-4, etc...
Thank you very much in advance!
J.F. Larente
Solution for not having stored the high level:
SQL > select *.
regextest 2
3.POINT LEV
-------------------- ----------
4245 4
4245 4-1
4245 4-10
4245 4-11
4245 4-12
4245 4-13
4245 4-14
4245 4-15
4245 4-15-59 A 7
4245 4-15-59 D 7
4245-4-15-59F711 selected lines.
SQL > with t1 as)
2. Select item
regextest 3
4 Union all the
5 select distinct substr (item, 1, instr(item,'-',1))
6 of regextest
7 ),
8 t2 as)
9. select element,
10 row_number() on id (order by article)
11 from t1
12 )
13. select id,
14 regexp_substr (rtrim (point,'-'), case level when 1 then ' [^-] + $' other '-[^-] + $' end) child.
parentID 15 prior id,
16 regexp_substr (prior rtrim (point,'-'), case level - 1 when 1 then ' [^-] + $' other '-[^-] + $' end) parent
17 of t2
beginning 18 with substr(item,-1) = '-'
19 connect by substr (item, 1, instr(item,'-',-1) - 1) = prior rtrim(item,'-')
20 and article! point prior =
21.ID PARENTID PARENT CHILD
---------- -------------------- ---------- --------------------
1 4245
2 -4 1 4245
3 -1 2 -4
4 -10 2 -4
5 -11 2 -4
6 -12 2 -4
7 -13 2 -4
8 -14 2 -4
9 -15 2 -4
10-59A 7 9-15
11 59 D 7 9 - 15ID PARENTID PARENT CHILD
---------- -------------------- ---------- --------------------
12 59F7 9-1512 selected lines.
SQL >
SY.
Maybe you are looking for
-
Can not activate Touchpad on Portege browser support
I've supported browser enabled in the settings of my touchpad (i.e. the browser should go back / forward through the history if I move my finger on top of the mouse pad). However, it does not work. Has anyone else had this problem? Someone knows how
-
AT100 keeps restarting while trying to connect to internet
Hello My partner has recently acquired an AT100 Tablet and it was working fine last night. Since then, the internet has been restarted and now, as he tried to connect to the internet (about "" obtain IP address"), it restarts. Every time. If anyone h
-
Replacing the battery for Satellite Pro A60
Can anyone advise where the the best/least expensive place is to get a replacement battery for my satellite pro A60, Ive. Ive left permanently plugged causing the batteries to be tired of apparentrly. If I turn the machine on at full load and nothing
-
New larger HARD drive Validation
Hello This is especially for the Lenovo support, when can we expect the validation of new th 5 to/to 6/8 to HARD drive currently on the market from various suppliers to make it on the official PX6 / list approved PX12? Some of the orders of higher ca
-
Unable to synchronize apple ipod synchronization
original title: apple ipod synchronization I have an apple ipod and it syncs with media player. My philips drive can be synchronized for some reason or another I tried several times but the custom of apple ipod. I would appreciate any help to set thi