Recursive SQL - Parent Child
Hi,
In a table I got hierarchial data (parent child), where parent is child to some other parent.
This is upto level4.(I mean Child=>Parent1=>Parent2=>Grand Parent)
Child=>Parent
A1=>B1
A2=>B1
A3=>B1
B1=>B2
B2=>B3
B3=>B4
I need result like - Each child will have its all parents and subsequent parent
Like :
Child Parent1 Parent2 Grand Parent
=========================
A1=>B1 -- First Parent of A1
A1=>B2 -- Second Parent of A1
A1=>B3 -- Third Parent of A1
A1=>B4 -- Grand Parent
Please help. Is this possible with connect by feature? I tired using it but i am getting only parents for each.
Thanks
Bhushan
Hi, Bhusan,
To repeat some value from the first row on all of the rows connected to it, use CONNECT_BY_ROOT
SELECT CONNECT_BY_ROOT child AS starting_point
, parent
FROM table_x
START WITH child = 'A1' -- or whatever
CONNECT BY chilD = PRIOR parent;
Similar Messages
-
Do the custom rollup member formulas work recursively for parent child dimension?
Hi
We have custom rollup set up for Account dimension which is parent child.
It seems to work fine when the custom member formula refers to a base account member i.e. if the formula for MemberKey4 is (MemberKey1 + MemberKey2) then it shows the sum of the underlying members 1 and 2.
But if the formula for MemberKey10 is (MemberKey3 + MemberKey4) then it should evaluate the value for MemberKey4 first and then add to it value for MemberKey3 to come up with final number for MemberKey10.
Do the custom rollup work fine with the recursive calculations? Is this recursion limited to some level?
Thanks
ShaileshHi Jorg,
Thanks for your input.
Actually the hierarhcy is more determined by the parent child relationship. So we cannot move the members as per the formula. And further the formulas are not always additive, there are divisions and multiplactions happening also.
Further the calculated members (account members) are used in different places, the usage level of calculated members could be 3 in some cases i.e. MemberKey15 = (calculated using MemberKey10 = (calculated using MemberKey7 = (Calculated using MemberKey4 = (calculated using base members)))). Now inserting the base members in place of a calcuated member becomes more of string manipulation.
And on the top of above complexity, the formulas are not static and they are more user defined, they may change between time periods, which forces us to write a dynamic procedure to translate the 'business formula' into SSAS formula. We expect the custom rollup to work as expected (i.e. if the formula contains a calculation involving the calculated member, it should resolve that first and so on) and we have written generic procedure to replace the Account Code in the 'business formula' with the accont key value with the account hierarchy char string.
In the link http://doc.ddart.net/mssql/sql2000/html/olapdmad/agmdxadvanced_6jn7.htm for AS2000, it talks about the calculation pass deapth, it says:
.......If a cube has custom rollup formulas or custom rollup operators, a second calculation pass is performed to handle the computations needed to calculate these features.......
Now from the above, it is obvious that the OLAP engine will automatically go into recursion if the formula contains a cacluated member and it knows that the calculated member has to be resolved first before calculating the final formula result. The above article also talks about 'Calculation Pass Number' property in the AdvanceCube Editor (AS2000), which can be set to the value depending on the expected number of passes required in a given scenario. I don't find such an equivalent peoperty for SSAS 2005.
Would anybody please throw some more ideas / insights on this issue?
Jorg, thanks again for your input...
Shailesh -
Hi all,
I am trying to write an sql - and the requirement is as below -
Table data contains columns Parent || Child || Summary_Flag
If Child is Parent again to some other Child then Summary Flag is "Y"
e.g. parent || Child || Summary_flag
P1 C1 N
P2 P3 Y
P3 C2 N
This relation exists to four level - .i.e. level to which child can be parent again.
I am trying to write SQL which will give me data in columns - i.e. Parent1||Parent2||Parent3||Parent4||Child.
Pleas help in any possible way.
thanks
BhushanhI,
What is your desired output ?
Like this.
P1|C1
P2|P3|C2
SELECT REGEXP_REPLACE (MAX (res)KEEP (DENSE_RANK LAST ORDER BY lvl),
) res
FROM (SELECT PARENT,
SYS_CONNECT_BY_PATH ( CASE
WHEN LEVEL = 1
THEN PARENT
END
|| '|'
|| CHILD,
) res,
LEVEL lvl
FROM test_data
WHERE summary_flag = 'N'
CONNECT BY PRIOR CHILD = PARENT)
GROUP BY PARENT
SQL> WITH test_data AS
2 (SELECT 'P1' PARENT, 'C1' CHILD, 'N' summary_flag
3 FROM DUAL
4 UNION ALL
5 SELECT 'P2' PARENT, 'P3' CHILD, 'Y' summary_flag
6 FROM DUAL
7 UNION ALL
8 SELECT 'P3' PARENT, 'P4' CHILD, 'Y' summary_flag
9 FROM DUAL
10 UNION ALL
11 SELECT 'P4' PARENT, 'C2' CHILD, 'N' summary_flag
12 FROM DUAL)
13 SELECT REGEXP_REPLACE (MAX (res)KEEP (DENSE_RANK LAST ORDER BY lvl),
14 '/'
15 ) res
16 FROM (SELECT PARENT,
17 SYS_CONNECT_BY_PATH ( CASE
18 WHEN LEVEL = 1
19 THEN PARENT
20 END
21 || '|'
22 || CHILD,
23 '/'
24 ) res,
25 LEVEL lvl
26 FROM test_data
27 WHERE summary_flag = 'N'
28 CONNECT BY PRIOR CHILD = PARENT)
29 GROUP BY PARENT;
RES
P1|C1
P2|P3|P4|C2
SQL> Regards salim. -
Retrieve Parent Child Sub-Child recors in SQL Query
I've a self reference table and it has Parent-Child-Subchild relation. I'm getting an output (from second answer http://stackoverflow.com/questions/16031000/get-records-containing-all-the-child-records-in-sql-server) as expected, but it's
displaying results in below format.
<parent id> - <name> - <code>
<child id> - <name> - <code>
<child id> - <name> - <code>
<child id> - <name> - <code>
<child id> - <name> - <code>
<sub child id> - <name> - <code>
<sub child id> - <name> - <code>
<sub child id> - <name> - <code>
I want to display the results like in below format with applying some indent style to distinguish parent\ child\sub-child relationship.
<parent id> - <name> - <code>
<child id> - <name> - <code>
<child id> - <name> - <code>
<sub child id> - <name> - <code>
<sub child id> - <name> - <code>
<child id> - <name> - <code>
<child id> - <name> - <code>
<sub child id> - <label> - <code>
<child id> - <name> - <code>
<child id> - <name> - <code>
Please assist me on foumulating results as expected.BOL has a good example of doing this in the CTE topic. See http://technet.microsoft.com/en-us/library/ms175972%28v=sql.105%29.aspx Here is a slightly modified
version of what is in BOL.
CREATE TABLE #MyEmployees
EmployeeID smallint NOT NULL,
FirstName nvarchar(30) NOT NULL,
LastName nvarchar(40) NOT NULL,
Title nvarchar(50) NOT NULL,
DeptID smallint NOT NULL,
ManagerID int NULL,
CONSTRAINT PK_EmployeeID PRIMARY KEY CLUSTERED (EmployeeID ASC)
-- Populate the table with values.
INSERT INTO #MyEmployees VALUES
(1, N'Ken', N'Sánchez', N'Chief Executive Officer',16,NULL)
,(273, N'Brian', N'Welcker', N'Vice President of Sales',3,1)
,(274, N'Stephen', N'Jiang', N'North American Sales Manager',3,273)
,(275, N'Michael', N'Blythe', N'Sales Representative',3,274)
,(276, N'Linda', N'Mitchell', N'Sales Representative',3,274)
,(285, N'Syed', N'Abbas', N'Pacific Sales Manager',3,273)
,(286, N'Lynn', N'Tsoflias', N'Sales Representative',3,285)
,(16, N'David',N'Bradley', N'Marketing Manager', 4, 273)
,(23, N'Mary', N'Gibson', N'Marketing Specialist', 4, 16);
; WITH DirectReports(Name, Title, EmployeeID, EmployeeLevel, Sort)
AS (SELECT CONVERT(varchar(255), e.FirstName + ' ' + e.LastName),
e.Title,
e.EmployeeID,
1,
CONVERT(varchar(255), e.FirstName + ' ' + e.LastName)
FROM #MyEmployees AS e
WHERE e.ManagerID IS NULL
UNION ALL
SELECT CONVERT(varchar(255), REPLICATE (' ' , EmployeeLevel) +
e.FirstName + ' ' + e.LastName),
e.Title,
e.EmployeeID,
EmployeeLevel + 1,
CONVERT (varchar(255), RTRIM(Sort) + '| ' + FirstName + ' ' +
LastName)
FROM #MyEmployees AS e
JOIN DirectReports AS d ON e.ManagerID = d.EmployeeID
SELECT EmployeeID, Name, Title, EmployeeLevel
FROM DirectReports
ORDER BY Sort;
GO
drop table #MyEmployees;
Tom -
SQL for Parent-Child Hierarchy
Please suggest which would be best way to achieve the below logic.
SQL to pick up parent child relationship within same table with a certain logic.
Example:
mod_product_number Product_Hierarchy
H555888 PH05678
H888987 H555888
H8889 H555888
H9955 H555888
H999999 H555888
P6666 H999999
P5555 H999999
Example: I expect the rows with H8889,H9955 & P6666 & P5555 to be sub-category values value for product hierarchy H555888.
If there are rows with H8888987 as Product_hierarchy, we will pull up those rows too for product hierarchy H555888.
The extra condition is we drill down only on 7 character mod_prod_number not on 5 character mod_prod_number. We pull out all sub category mod_prod_number for all distinct Product hierarchy.You can use Hierarchical Queries
See.. http://docs.oracle.com/cd/E11882_01/server.112/e10592/queries003.htm
select lpad(' ',2*(level-1)) || to_char(trim(t.mod_product_number)) prod,
SYS_CONNECT_BY_PATH(t.product_hierarchy, '/') "Path",
LEVEL
from temp_table t
start with trim(t.product_hierarchy) = 'PH05678'
connect by prior trim(t.mod_product_number) = trim(t.product_hierarchy);
. PROD Path LEVEL
1 H555888 /PH05678 1
2 H8889 /PH05678 /H555888 2
3 H888987 /PH05678 /H555888 2
4 H9955 /PH05678 /H555888 2
5 H999999 /PH05678 /H555888 2
6 P5555 /PH05678 /H555888 /H999999 3
7 P6666 /PH05678 /H555888 /H999999 3 -
Child reports for a PL/SQL Parent?
Hi forum,
I would like to create a parent-child report based on a given package.
Unfortunately I (guess I )need to have a PL/SQL DBMS Output parent, and I'm searching to create a child based on some rows of this.
a slightly simplified example:
I have a type and a package with a procedure & function (I can not change the package):
create or replace TYPE SimpleStringArrayType AS TABLE OF VARCHAR2(2000);
create or replace PACKAGE MyPackage AS
procedure get_filelist(vReturnArray OUT SimpleStringArrayType);
function get_file(filename in varchar2) return clob;
My idea is to get a list of filenames with procedure get_filelist in the parent report, and in the child report I show the content of the file according to function get_file.
the current PL/SQL script is (simplified)
DECLARE
VRETURNARRAY SimpleStringArrayType;
v_cnt number:=0;
BEGIN
dbms_output.put_line('<html><body>');
GET_filelist(vReturnArray => VRETURNARRAY);
v_cnt:=VRETURNARRAY.count;
dbms_output.put_line('<br>');
dbms_output.put_line('<table>');
dbms_output.put_line('<tr> <th><th>file</th>');
for i in VRETURNARRAY.first..VRETURNARRAY.last loop
dbms_output.put_line(' <tr>');
dbms_output.put_line('<td> ' || VRETURNARRAY(i) || ' </td> ');
dbms_output.put_line(' </tr>');
end loop;
dbms_output.put_line('</table></body></html>');
END;
again, I can't change get_filelist to a function.
Any suggestion is highly welcome!
MartinAnd syntax (basic or otherwise) is covered in the pl/sql manual:
http://download-east.oracle.com/docs/cd/B19306_01/appdev.102/b14261/toc.htm -
Recursive Parent Child relationship in JPA
@Entity
@Table(name = "OBJECTCATEGORY")
public class ObjectCategory implements Serializable {
@Id
private String categoryId;
private String categoryName;
private String description;
private static final long serialVersionUID = 1L;
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "MAP_CATEGORY", joinColumns = @JoinColumn(name = "CATEGORYID"), inverseJoinColumns = @JoinColumn(name = "OBJECTID"))
private List<MapC> mapList = new ArrayList<MapC>();
// Recursion
@OneToMany(fetch = FetchType.LAZY, mappedBy = "fqQuesCatagory")
List<ObjectCategory > categoryList = new ArrayList<ObjectCategory>();
@ManyToOne
@JoinColumn(name = "PARENTCATEGORY")
private ObjectCategory fqQuesCatagory
// Recursion
public FqQuesCatagory() {
super();
public String getCategoryname() {
return this.categoryname;
public void setCategoryname(String categoryname) {
this.categoryname = categoryname;
public String getDescription() {
return this.description;
public void setDescription(String description) {
this.description = description;
public List<MapC> getMapList() {
return faqList;
public void setFaqList(List<MapC> faqList) {
this.mapList = mapList ;
public String getCategoryid() {
return categoryId;
public void setCategoryid(String categoryid) {
this.categoryid = categoryId;
public List<ObjectCategory> getFqCategoryList() {
return categoryList;
public void setFqCategoryList(List<ObjectCategory> categoryList) {
this.categoryList = categoryList;
public ObjectCategory getFqQuesCatagory() {
return fqQuesCatagory;
public void setFqQuesCatagory(ObjectCategory fqQuesCatagory) {
this.fqQuesCatagory = fqQuesCatagory;
Doesn't SAP JPA support recursive parent-child relationship (highlighted by "// Recursion"). The same model works in TopLink perfectly.Sorry for the delayed update..
I see an issue in the WSNavigator. I have a method in my EJB exposed as a web service. This method has a single argument, which is a serializable class containing a few string variables and the above-mentioned Entity with suitable getters and setters for all the class variables.
When I try to select this operation under the WSDL in the Webservice Navigator, I get a stack overflow error. I think it is because WD4J run-time is not able to build the nested tree. Not sure though...I've attached the stack trace below:
Cannot send an HTTP error response [500 "Application error occurred during the request procession." (details: java.lang.StackOverflowError
at java.lang.String.lastIndexOf(String.java:1496)
at java.lang.String.lastIndexOf(String.java:1458)
at com.sap.dictionary.runtime.StringUtil.getPackageName(StringUtil.java:143)
at com.sap.dictionary.runtime.DdBroker.getDataType(DdBroker.java:179)
at com.sap.tc.webdynpro.progmodel.context.DictionaryHandler._getScalarType(DictionaryHandler.java:447)
at com.sap.tc.webdynpro.progmodel.context.DictionaryHandler.getDataType(DictionaryHandler.java:159)
at com.sap.tc.webdynpro.progmodel.context.DataAttributeInfo.init(DataAttributeInfo.java:447)
at com.sap.tc.webdynpro.progmodel.context.NodeInfo.addAttribute(NodeInfo.java:746)
at com.sap.tc.webdynpro.progmodel.context.NodeInfo.addAttribute(NodeInfo.java:759)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder.createParameterNodeInfo(DWSContextBuilder.java:984)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder.access$400(DWSContextBuilder.java:88)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.buildContextForComplexType(DWSContextBuilder.java:1591)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.buildContextForTypeObject(DWSContextBuilder.java:1574)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.createElementObject(DWSContextBuilder.java:1763)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.createFieldObject(DWSContextBuilder.java:1681)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.intWithStructureFields(DWSContextBuilder.java:1671)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.createComplexTypeObject(DWSContextBuilder.java:1660)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.buildContextForComplexType(DWSContextBuilder.java:1615)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.buildContextForTypeObject(DWSContextBuilder.java:1574)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.createElementObject(DWSContextBuilder.java:1763)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.createFieldObject(DWSContextBuilder.java:1681)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.intWithStructureFields(DWSContextBuilder.java:1671)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.createComplexTypeObject(DWSContextBuilder.java:1660)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.buildContextForComplexType(DWSContextBuilder.java:1615)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.buildContextForTypeObject(DWSContextBuilder.java:1574)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.createElementObject(DWSContextBuilder.java:1763)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.createFieldObject(DWSContextBuilder.java:1681)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.intWithStructureFields(DWSContextBuilder.java:1671)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.createComplexTypeObject(DWSContextBuilder.java:1660)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.buildContextForComplexType(DWSContextBuilder.java:1615)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.buildContextForTypeObject(DWSContextBuilder.java:1574)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.createElementObject(DWSContextBuilder.java:1763)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.createFieldObject(DWSContextBuilder.java:1681)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.intWithStructureFields(DWSContextBuilder.java:1671)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.createComplexTypeObject(DWSContextBuilder.java:1660)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.buildContextForComplexType(DWSContextBuilder.java:1615)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.buildContextForTypeObject(DWSContextBuilder.java:1574)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.createElementObject(DWSContextBuilder.java:1763)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.createFieldObject(DWSContextBuilder.java:1681)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.intWithStructureFields(DWSContextBuilder.java:1671)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.createComplexTypeObject(DWSContextBuilder.java:1660)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.buildContextForComplexType(DWSContextBuilder.java:1615)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.buildContextForTypeObject(DWSContextBuilder.java:1574)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.createElementObject(DWSContextBuilder.java:1763)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.createFieldObject(DWSContextBuilder.java:1681)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.intWithStructureFields(DWSContextBuilder.java:1671)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.createComplexTypeObject(DWSContextBuilder.java:1660)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.buildContextForComplexType(DWSContextBuilder.java:1615)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.buildContextForTypeObject(DWSContextBuilder.java:1574)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.createElementObject(DWSContextBuilder.java:1763)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.createFieldObject(DWSContextBuilder.java:1681)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.intWithStructureFields(DWSContextBuilder.java:1671)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.createComplexTypeObject(DWSContextBuilder.java:1660)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.buildContextForComplexType(DWSContextBuilder.java:1615)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.buildContextForTypeObject(DWSContextBuilder.java:1574)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.createElementObject(DWSContextBuilder.java:1763)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.createFieldObject(DWSContextBuilder.java:1681)
at com.sap.esi.esp.wsnavigator.helper.DWSContextBuilder$DInputParams.intWithStructureFields(DWSContextBuilder.java:1671)
Any thoughts on this will be highly appreciated.
BR. -
Options for loading parent-child SQL 2005 tables
I was reading about a few examples of using Table types and a stored procedure to load tables that are joined by a foreign key (parent-child). Seems straight forward enough. However, that requires at least SQL 2008 and the system we are using
is on 2005 still for the time being. As much as I would like to upgrade, there is no time for it, even though we have other 2008 and 2012 instances. So with that said, what are my options for getting data from BTS to SQL where the destination is 2 tables
that have relations.
There are probably a dozen or more, but my first thought is a stored procedure with an xml parameter, then use xquery and xpath statements to pull the data out and insert. TRY/CATCH and RAISEERROR to return error codes back to the BTS application.
Thoughts?First, how many records are you dealing with? I don't even think of terms of 'bulk' until 10,000 or so. And once that threshold is crossed, the first tool out of the box is SSIS.
Second, are you debatching or is there a triple confirmed requirement that all records be loaded in a single transaction?
Finally, the 'DB round-trip' issue is often misunderstood in real world settings. In a typical db transaction, the most expensive operation is establishing the connection. Once that's done, the SQL Client is very efficient in transporting data
to and from the database. Since the wcfSqlBinding uses a Connection Pool, that setup is only done once to some high-water mark.
Consider, the data has to be sent no matter what and in every conseivable scneario*, the byte count of a stored procedure over TDS would be less than sending the same data wrapped in Xml. The network adds considerable latency to the conversation.
This is why I'm skeptical of using OPENXML() without a provable benefit.
So, don't get caught up in theoritical 'performance' issues without understanding the entire scenario first.
*SQL Code being the primary exception. -
Hi:
I have two tables. My main table contains item and quantity. The second table contains material_item, item and quantity. They are joined on item. The next step is to check if the material_item contains in the item record in
the second table. If it does not, we insert the record into a brand new table. If it does, we will repeat the last step. We will check if the material_item is also an item record. It is parent/child relationship. But the
child can be a parent as well.
Table A
Item Quantity
123 1
234 2
Table B
Material Item Item Quantity
bbb 123 2
pop bbb 1
wer pop 1
234 aaa 1
Item 123 contains material item bbb, pop, wer (3 records)
Item 234 (1 record)
End Result - I will need to insert 4 records into the database.
I am trying to explain this not sure if I explain this clearly. Hopefully, the example will give you more insight.
I have been staring at this for quite a while. I am hoping a fresh pairs eyes will be able to tell me on what I need to do.
Thanks for your assistance.
kkmickIt seems to me that your example is the opposite of what is stated in the question "If it does not, we insert the record into a brand new table"
If this is what you want try something like
Insert into new table ....
where not exists (select item from materialitem)
Andy Tauber
Data Architect
The Vancouver Clinic
Website | LinkedIn
This posting is provided "AS IS" with no warranties, and confers no rights. Please remember to click
"Mark as Answer" and "Vote as Helpful" on posts that help you. This can be beneficial to other community members reading the thread. -
Help needed on Many to Many Parent Child Relationship (PL/SQL)
Friends,
Please help me.
I have table where in two columns are having many to many parent child relation ship. It means child can have multiple parents.
Table strucuture and sample records given below. Here 334059 is GRAND PARENT of all child records.
PARENT CHILD LEVEL Usage
334059 380499 1 This Level has 2 childs
334059 334730 1
334730 335629 2 This level too has 2 childs where in 380499 is child of 334730 & 334059 also.
334730 380499 2
380499 380497 2 This level has 3 childs and 88888 is having further child.
380499 334730 2
380499 88888 2
88888 99999 3 It has one child 99999 and has further child 10101.
99999 10101 4 It has one child 10101 and has further child 11111.
10101 11111 5 It has one child 11111 and has no further child. I.e leaf node.
11111 0 6 leaf node
What I want is records in same level above. I am using below code but its implementing only UPTO 2nd LEVEL given above.
Further its not going i.e 3,4,5,6 level. Could you please help me?
DECLARE
CURSOR main_pc(p_child pc.child%type) IS
SELECT CHILD
FROM pc where parent = p_child;
CURSOR main_dw(p_child dw_exrdbo.exr_parent_child.child_fund%type,
p_level NUMBER) IS
SELECT DISTINCT CHILD_FUND,LEVEL_NUMBER FROM dw_exrdbo.exr_parent_child
where parent_fund = p_child
and parent_fund <> child_fund
and level_number = p_level;
v_next_parent pc.child%type;
v_level NUMBER := 1;
v_grand_parent dw_exrdbo.exr_parent_child.parent_fund%type := 334059;
v_parent dw_exrdbo.exr_parent_child.parent_fund%type;
vDone BOOLEAN;
v_xyz dw_exrdbo.exr_parent_child.parent_fund%type;
v_cnt NUMBER := 0;
BEGIN
DELETE FROM dw_exrdbo.exr_parent_child;
COMMIT;
INSERT INTO dw_exrdbo.exr_parent_child
SELECT PARENT, CHILD, 'INVONE', 12345, 'P',0,1
FROM pc where parent = v_grand_parent
AND NOT EXISTS (select 'x' from dw_exrdbo.exr_parent_child where parent_fund = v_grand_parent);
COMMIT;
FOR i IN (select distinct child FROM pc WHERE parent = v_grand_parent) --334059
LOOP
DBMS_OUTPUT.PUT_LINE('Next Parent is '||v_parent);
FOR x IN main_pc(i.child)
LOOP
INSERT INTO dw_exrdbo.exr_parent_child
(parent_fund, child_fund, source_application, valuation_date_sid, parent_child_flag, child_count, level_number)
VALUES(i.child, X.CHILD, 'INVONE', 12345, 'C',0,1+1);
COMMIT;
END LOOP;
END LOOP;
END;
Thanks in advance!!!
Regards,
JiggerHi, Jigger,
Sorry, I can't tell what you want.
Whenever you have a question, please post CREATE TABLE and INSERT statements for your sample data, and the results you want from that data.
Explain, using specific examples, how you get those results from that data.
Always say what version of Oracle you're using. -
Dynamic hierarchy in parent child hierarchy table??
Do you have any experience to handle the requirement of dynamic hierarchy in universe/webi?
We have some data in parent child hierarchy as below u201CCustomeru201D table.
Customer
Parent Child
Z A
Z B
A AA
B BB
AA AAA
For example, Company Z is the parent company of Company A.
Another table, Amount is the amount value of different Customers.
Amount
ID Amt
AA 10
AAA 1
BB 2
Is there any functionality in Universe designer to build related Classes and objects, So that the web intelligence documents represent the following report with the drilling results?
When we want to see the ID and Amt, the expected result should be:
Z 13
when we drill down Z
the result should be:
A 11
B 2
when we drill down A:
the result should be:
AA 11
notes **
the level of hierarchy is dynamic
Any suggestion is appreciated. Thanks.Hi,
The only way to do it is to create recursive derived table that flatten you parent child hierarchy with a given maximum depth.
Here is a sample I built a long time ago to flatten a parent-child hierarchy on Employees table in Foodmart database (SQL Server).
Didier
SELECT DISTINCT
Z.employee_id,
A.supervisor_id_1,
A.employee_id_1,
A.full_name_1,
A.supervisor_id_2,
A.employee_id_2,
A.full_name_2,
A.supervisor_id_3,
A.employee_id_3,
A.full_name_3,
A.supervisor_id_4,
A.employee_id_4,
A.full_name_4,
A.supervisor_id_5,
A.employee_id_5,
A.full_name_5,
A.supervisor_id_6,
A.employee_id_6,
A.full_name_6,
Z.supervisor_id AS supervisor_id_7,
Z.employee_id AS employee_id_7,
Z.full_name AS full_name_7
FROM employee Z,
SELECT DISTINCT
A.supervisor_id_1,
A.employee_id_1,
A.full_name_1,
A.supervisor_id_2,
A.employee_id_2,
A.full_name_2,
A.supervisor_id_3,
A.employee_id_3,
A.full_name_3,
A.supervisor_id_4,
A.employee_id_4,
A.full_name_4,
A.supervisor_id_5,
A.employee_id_5,
A.full_name_5,
Z.supervisor_id AS supervisor_id_6,
Z.employee_id AS employee_id_6,
Z.full_name AS full_name_6
FROM employee Z,
SELECT DISTINCT
A.supervisor_id_1,
A.employee_id_1,
A.full_name_1,
A.supervisor_id_2,
A.employee_id_2,
A.full_name_2,
A.supervisor_id_3,
A.employee_id_3,
A.full_name_3,
A.supervisor_id_4,
A.employee_id_4,
A.full_name_4,
Z.supervisor_id AS supervisor_id_5,
Z.employee_id AS employee_id_5,
Z.full_name AS full_name_5
FROM employee Z,
SELECT DISTINCT
A.supervisor_id_1,
A.employee_id_1,
A.full_name_1,
A.supervisor_id_2,
A.employee_id_2,
A.full_name_2,
A.supervisor_id_3,
A.employee_id_3,
A.full_name_3,
Z.supervisor_id AS supervisor_id_4,
Z.employee_id AS employee_id_4,
Z.full_name AS full_name_4
FROM employee Z,
SELECT DISTINCT
A.supervisor_id_1,
A.employee_id_1,
A.full_name_1,
A.supervisor_id_2,
A.employee_id_2,
A.full_name_2,
Z.supervisor_id AS supervisor_id_3,
Z.employee_id AS employee_id_3,
Z.full_name AS full_name_3
FROM employee Z,
SELECT DISTINCT
A.supervisor_id_1,
A.employee_id_1,
A.full_name_1,
Z.supervisor_id AS supervisor_id_2,
Z.employee_id AS employee_id_2,
Z.full_name AS full_name_2
FROM employee Z,
SELECT DISTINCT
supervisor_id AS supervisor_id_1,
employee_id AS employee_id_1,
full_name AS full_name_1
FROM employee
WHERE supervisor_id = 0 OR supervisor_id IS NULL
) A
WHERE A.employee_id_1 = Z.supervisor_id
) A
WHERE A.employee_id_2 = Z.supervisor_id
) A
WHERE A.employee_id_3 = Z.supervisor_id
) A
WHERE A.employee_id_4 = Z.supervisor_id
) A
WHERE A.employee_id_5 = Z.supervisor_id
) A
WHERE A.employee_id_6 = Z.supervisor_id
UNION
SELECT DISTINCT
A.employee_id_6 AS employee_id,
A.supervisor_id_1,
A.employee_id_1,
A.full_name_1,
A.supervisor_id_2,
A.employee_id_2,
A.full_name_2,
A.supervisor_id_3,
A.employee_id_3,
A.full_name_3,
A.supervisor_id_4,
A.employee_id_4,
A.full_name_4,
A.supervisor_id_5,
A.employee_id_5,
A.full_name_5,
A.supervisor_id_6,
A.employee_id_6,
A.full_name_6,
NULL AS supervisor_id_7,
NULL AS employee_id_7,
NULL AS full_name_7
FROM employee Z,
SELECT DISTINCT
A.supervisor_id_1,
A.employee_id_1,
A.full_name_1,
A.supervisor_id_2,
A.employee_id_2,
A.full_name_2,
A.supervisor_id_3,
A.employee_id_3,
A.full_name_3,
A.supervisor_id_4,
A.employee_id_4,
A.full_name_4,
A.supervisor_id_5,
A.employee_id_5,
A.full_name_5,
Z.supervisor_id AS supervisor_id_6,
Z.employee_id AS employee_id_6,
Z.full_name AS full_name_6
FROM employee Z,
SELECT DISTINCT
A.supervisor_id_1,
A.employee_id_1,
A.full_name_1,
A.supervisor_id_2,
A.employee_id_2,
A.full_name_2,
A.supervisor_id_3,
A.employee_id_3,
A.full_name_3,
A.supervisor_id_4,
A.employee_id_4,
A.full_name_4,
Z.supervisor_id AS supervisor_id_5,
Z.employee_id AS employee_id_5,
Z.full_name AS full_name_5
FROM employee Z,
SELECT DISTINCT
A.supervisor_id_1,
A.employee_id_1,
A.full_name_1,
A.supervisor_id_2,
A.employee_id_2,
A.full_name_2,
A.supervisor_id_3,
A.employee_id_3,
A.full_name_3,
Z.supervisor_id AS supervisor_id_4,
Z.employee_id AS employee_id_4,
Z.full_name AS full_name_4
FROM employee Z,
SELECT DISTINCT
A.supervisor_id_1,
A.employee_id_1,
A.full_name_1,
A.supervisor_id_2,
A.employee_id_2,
A.full_name_2,
Z.supervisor_id AS supervisor_id_3,
Z.employee_id AS employee_id_3,
Z.full_name AS full_name_3
FROM employee Z,
SELECT DISTINCT
A.supervisor_id_1,
A.employee_id_1,
A.full_name_1,
Z.supervisor_id AS supervisor_id_2,
Z.employee_id AS employee_id_2,
Z.full_name AS full_name_2
FROM employee Z,
SELECT DISTINCT
supervisor_id AS supervisor_id_1,
employee_id AS employee_id_1,
full_name AS full_name_1
FROM employee
WHERE supervisor_id = 0 OR supervisor_id IS NULL
) A
WHERE A.employee_id_1 = Z.supervisor_id
) A
WHERE A.employee_id_2 = Z.supervisor_id
) A
WHERE A.employee_id_3 = Z.supervisor_id
) A
WHERE A.employee_id_4 = Z.supervisor_id
) A
WHERE A.employee_id_5 = Z.supervisor_id
) A
UNION
SELECT DISTINCT
A.employee_id_5 AS employee_id,
A.supervisor_id_1,
A.employee_id_1,
A.full_name_1,
A.supervisor_id_2,
A.employee_id_2,
A.full_name_2,
A.supervisor_id_3,
A.employee_id_3,
A.full_name_3,
A.supervisor_id_4,
A.employee_id_4,
A.full_name_4,
A.supervisor_id_5,
A.employee_id_5,
A.full_name_5,
NULL AS supervisor_id_6,
NULL AS employee_id_6,
NULL AS full_name_6,
NULL AS supervisor_id_7,
NULL AS employee_id_7,
NULL AS full_name_7
FROM employee Z,
SELECT DISTINCT
A.supervisor_id_1,
A.employee_id_1,
A.full_name_1,
A.supervisor_id_2,
A.employee_id_2,
A.full_name_2,
A.supervisor_id_3,
A.employee_id_3,
A.full_name_3,
A.supervisor_id_4,
A.employee_id_4,
A.full_name_4,
Z.supervisor_id AS supervisor_id_5,
Z.employee_id AS employee_id_5,
Z.full_name AS full_name_5
FROM employee Z,
SELECT DISTINCT
A.supervisor_id_1,
A.employee_id_1,
A.full_name_1,
A.supervisor_id_2,
A.employee_id_2,
A.full_name_2,
A.supervisor_id_3,
A.employee_id_3,
A.full_name_3,
Z.supervisor_id AS supervisor_id_4,
Z.employee_id AS employee_id_4,
Z.full_name AS full_name_4
FROM employee Z,
SELECT DISTINCT
A.supervisor_id_1,
A.employee_id_1,
A.full_name_1,
A.supervisor_id_2,
A.employee_id_2,
A.full_name_2,
Z.supervisor_id AS supervisor_id_3,
Z.employee_id AS employee_id_3,
Z.full_name AS full_name_3
FROM employee Z,
SELECT DISTINCT
A.supervisor_id_1,
A.employee_id_1,
A.full_name_1,
Z.supervisor_id AS supervisor_id_2,
Z.employee_id AS employee_id_2,
Z.full_name AS full_name_2
FROM employee Z,
SELECT DISTINCT
supervisor_id AS supervisor_id_1,
employee_id AS employee_id_1,
full_name AS full_name_1
FROM employee
WHERE supervisor_id = 0 OR supervisor_id IS NULL
) A
WHERE A.employee_id_1 = Z.supervisor_id
) A
WHERE A.employee_id_2 = Z.supervisor_id
) A
WHERE A.employee_id_3 = Z.supervisor_id
) A
WHERE A.employee_id_4 = Z.supervisor_id
) A
UNION
SELECT DISTINCT
A.employee_id_4 AS employee_id,
A.supervisor_id_1,
A.employee_id_1,
A.full_name_1,
A.supervisor_id_2,
A.employee_id_2,
A.full_name_2,
A.supervisor_id_3,
A.employee_id_3,
A.full_name_3,
A.supervisor_id_4,
A.employee_id_4,
A.full_name_4,
NULL AS supervisor_id_5,
NULL AS employee_id_5,
NULL AS full_name_5,
NULL AS supervisor_id_6,
NULL AS employee_id_6,
NULL AS full_name_6,
NULL AS supervisor_id_7,
NULL AS employee_id_7,
NULL AS full_name_7
FROM employee Z,
SELECT DISTINCT
A.supervisor_id_1,
A.employee_id_1,
A.full_name_1,
A.supervisor_id_2,
A.employee_id_2,
A.full_name_2,
A.supervisor_id_3,
A.employee_id_3,
A.full_name_3,
Z.supervisor_id AS supervisor_id_4,
Z.employee_id AS employee_id_4,
Z.full_name AS full_name_4
FROM employee Z,
SELECT DISTINCT
A.supervisor_id_1,
A.employee_id_1,
A.full_name_1,
A.supervisor_id_2,
A.employee_id_2,
A.full_name_2,
Z.supervisor_id AS supervisor_id_3,
Z.employee_id AS employee_id_3,
Z.full_name AS full_name_3
FROM employee Z,
SELECT DISTINCT
A.supervisor_id_1,
A.employee_id_1,
A.full_name_1,
Z.supervisor_id AS supervisor_id_2,
Z.employee_id AS employee_id_2,
Z.full_name AS full_name_2
FROM employee Z,
SELECT DISTINCT
supervisor_id AS supervisor_id_1,
employee_id AS employee_id_1,
full_name AS full_name_1
FROM employee
WHERE supervisor_id = 0 OR supervisor_id IS NULL
) A
WHERE A.employee_id_1 = Z.supervisor_id
) A
WHERE A.employee_id_2 = Z.supervisor_id
) A
WHERE A.employee_id_3 = Z.supervisor_id
) A
UNION
SELECT DISTINCT
A.employee_id_3 AS employee_id,
A.supervisor_id_1,
A.employee_id_1,
A.full_name_1,
A.supervisor_id_2,
A.employee_id_2,
A.full_name_2,
A.supervisor_id_3,
A.employee_id_3,
A.full_name_3,
NULL AS supervisor_id_4,
NULL AS employee_id_4,
NULL AS full_name_4,
NULL AS supervisor_id_5,
NULL AS employee_id_5,
NULL AS full_name_5,
NULL AS supervisor_id_6,
NULL AS employee_id_6,
NULL AS full_name_6,
NULL AS supervisor_id_7,
NULL AS employee_id_7,
NULL AS full_name_7
FROM employee Z,
SELECT DISTINCT
A.supervisor_id_1,
A.employee_id_1,
A.full_name_1,
A.supervisor_id_2,
A.employee_id_2,
A.full_name_2,
Z.supervisor_id AS supervisor_id_3,
Z.employee_id AS employee_id_3,
Z.full_name AS full_name_3
FROM employee Z,
SELECT DISTINCT
A.supervisor_id_1,
A.employee_id_1,
A.full_name_1,
Z.supervisor_id AS supervisor_id_2,
Z.employee_id AS employee_id_2,
Z.full_name AS full_name_2
FROM employee Z,
SELECT DISTINCT
supervisor_id AS supervisor_id_1,
employee_id AS employee_id_1,
full_name AS full_name_1
FROM employee
WHERE supervisor_id = 0 OR supervisor_id IS NULL
) A
WHERE A.employee_id_1 = Z.supervisor_id
) A
WHERE A.employee_id_2 = Z.supervisor_id
) A
UNION
SELECT DISTINCT
A.employee_id_2 AS employee_id,
A.supervisor_id_1,
A.employee_id_1,
A.full_name_1,
A.supervisor_id_2,
A.employee_id_2,
A.full_name_2,
NULL AS supervisor_id_3,
NULL AS employee_id_3,
NULL AS full_name_3,
NULL AS supervisor_id_4,
NULL AS employee_id_4,
NULL AS full_name_4,
NULL AS supervisor_id_5,
NULL AS employee_id_5,
NULL AS full_name_5,
NULL AS supervisor_id_6,
NULL AS employee_id_6,
NULL AS full_name_6,
NULL AS supervisor_id_7,
NULL AS employee_id_7,
NULL AS full_name_7
FROM employee Z,
SELECT DISTINCT
A.supervisor_id_1,
A.employee_id_1,
A.full_name_1,
Z.supervisor_id AS supervisor_id_2,
Z.employee_id AS employee_id_2,
Z.full_name AS full_name_2
FROM employee Z,
SELECT DISTINCT
supervisor_id AS supervisor_id_1,
employee_id AS employee_id_1,
full_name AS full_name_1
FROM employee
WHERE supervisor_id = 0 OR supervisor_id IS NULL
) A
WHERE A.employee_id_1 = Z.supervisor_id
) A
UNION
SELECT DISTINCT
A.employee_id_1 AS employee_id,
A.supervisor_id_1,
A.employee_id_1,
A.full_name_1,
NULL AS supervisor_id_2,
NULL AS employee_id_2,
NULL AS full_name_2,
NULL AS supervisor_id_3,
NULL AS employee_id_3,
NULL AS full_name_3,
NULL AS supervisor_id_4,
NULL AS employee_id_4,
NULL AS full_name_4,
NULL AS supervisor_id_5,
NULL AS employee_id_5,
NULL AS full_name_5,
NULL AS supervisor_id_6,
NULL AS employee_id_6,
NULL AS full_name_6,
NULL AS supervisor_id_7,
NULL AS employee_id_7,
NULL AS full_name_7
FROM employee Z,
SELECT DISTINCT
supervisor_id AS supervisor_id_1,
employee_id AS employee_id_1,
full_name AS full_name_1
FROM employee
WHERE supervisor_id = 0 OR supervisor_id IS NULL
) A -
Parent Child Data - Populate within a Dropdown
Hi All ...
I have a mysql database with the following fields
ID (Int) - Title (VarChar) - ParentID (Int)
This table is used to display categories with it's parent. Categories with the ParentID of 0 means that it is a root category.
What'm trying to do is query the database and populate all values (with it's parent & child(s)) within a regular html dropdown box.
So the output of the dropdown whould look like:
Home
Home > Sub Cat 1
Home > Sub Cat 1 > Sub Sub Cat 1
Home > Sub Cat 1 > Sub Sub Cat 2
Home > Sub Cat 1 > Sub Sub Cat 3
Home > Sub Cat 2 > Sub Sub Cat 1
Home > Sub Cat 2 > Sub Sub Cat 2
Home > Sub Cat 3
Home > Sub Cat 4
Home > Sub Cat 4 > Sub Sub Cat 1
Home > Sub Cat 5
Any ideas on how I can accomplish this?
Many Thanks
ShafiqAs far as I know you cannot elegantly handle this sort of datastructure in MySQL (this is based on 5min of googling). If you had Oracle you could use CONNECT BY PRIOR, and with SQL Server one can use Common Table Expressions to effect much the same thing (except in a pretty clunky fashion, IMO).
As far as I can tell, MySQL has neither of those options. You'll need to do some sort of horrific recursive proc, or something like that. Although I saw references to MySQL not even being able to do that (I didn't check how contemporary those comments were).
If you can possibly ditch that way of modelling your data - it really doesn't scale so well - have a look at nested set hierarchies:
http://en.wikipedia.org/wiki/Nested_set_model
The only modification I make to that is to store the parent with each node too, which makes sibling operations much easier. Nested sets work really well with hierarchical look-ups though.
Adam -
Does essbase studio support Parent/Child build method
Hi,
I am trying to build essbase outline from Essbase studio where my source data is in Parent child format. Dimension hierarchies are not built correctly with this build method.. all members are appearing as siblings... could you please confirm if essbase studio does support Parent Child build method... so that i can try to fix the bugs at source if there are any. Thanks for your help in advance.
Regards,
PraveenHI John and Glenn,
Thank you very much for your help. I have now built essbase outline with recursive hierarchies.
I have total 11 dimensions and 1 fact table. During the cube schema built, chosen fact table column 'Amount' into measures/measure, 11 hierarchies into hierarchy section... and one dimension as "Account" dim from the 11 dims. The data load is failing with the below error:
Failed to deploy Essbase cube.
Caused by: Failed to load data into database: CurrrASO.
Caused by: Cannot get async process state. Essbase Error(1003007): Data Value [8.23326e+007] Encountered Before All Dimensions Selected, [1] Records Completed
The native sql issued by Studio does not contain the dimension column which is designated as Account dim. I have used custom sql (included one column from each of the 11 dims) but here the data value is also treated as member name and all the records are rejected.
Member 37356.617844 Not Found In Database
[2] Mar USD No Segment FY07 Actual-Detail E345 D310 R00 P0000 PL000 7306 37356.617844
I cant open the rules files in AAS console to check what was going on.. so need your help to understand where i am going wrong.
Thanks,
Praveen
Edited by: user8627339 on Dec 22, 2010 10:26 PM -
Getting parent-child data from a single column in a table
Hi,
I have a parent-child data in a column.
Eg:
0
00
01
010
011
1
10
11
These values are present in the single column itself. My need is to get the parent values for the given child value.
For eg: If I am giving the input as 011, the query should return all its parents, i.e. 01 and 0
Could you please give me any inputs on this?
Thanks,
GVFrank Kulash wrote:
Assuming that each child's id is formed by adding exactly one character to the end of its parent's id:
SELECT id
FROM table_x
START WITH id = :target_id
CONNECT BY PRIOR id LIKE id || '_';
Small tweak to yours Frank if it's just the parents that need identifying...
SQL> ed
Wrote file afiedt.buf
1 with t as (select '0' as x from dual union all
2 select '00' from dual union all
3 select '01' from dual union all
4 select '010' from dual union all
5 select '011' from dual union all
6 select '1' from dual union all
7 select '10' from dual union all
8 select '11' from dual)
9 -- end of test data
10 SELECT x
11 FROM t, (select '&required' as req from dual) req
12 WHERE x != req.req
13 START WITH x = req.req
14* CONNECT BY PRIOR x LIKE x || '_'
SQL> /
Enter value for required: 011
old 11: FROM t, (select '&required' as req from dual) req
new 11: FROM t, (select '011' as req from dual) req
X
01
0
SQL> /
Enter value for required: 11
old 11: FROM t, (select '&required' as req from dual) req
new 11: FROM t, (select '11' as req from dual) req
X
1
SQL> -
Insert Record with Parent/Child Tables doesn't work with Oracle - unlike AC
Hi,
I just Migrated a MS Access 2010 Database to an Oracle 11g Backend with the SQL Developer Tool.
The Migration went fine, all the Tables and Views are migrated.
I'm working with MS Access as Frontend.
The application has some Datasheets with Subdatasheets with Parent/Child Relationship. (1-n Relationship)
After changing to Oracle, it's not possible, to Insert a new Record in a Subdatasheet I always get the following Error Message:
"The Microsoft Access database engine cannot find a record in the table 'xxxx' with key matching field(s) 'zzzzz'"
It used to work perfect with the MS Access Backend, do I need a trigger which first adds the child Record ?
Or what should I do?
Thank youHi Klaus,
Thanks for your answer. I still haven't solved my problem. The only way would be to use a singel 1:n Relationship, but in fact I need a n:m Relationship.
I tried the same scenario with a new Access Application, same result.
To clearify my problem.
Goal: Parent Form with Parent Records, Linked Child Form with Child Records in a Datasheet View => Insert of a NEW Child Record.
I have 3 Tables (table1 = Parent tabel, table2 = Child Table, table12 = n:m Tabel with PK and two FK)
The Recordsource of the Parent Form is Tabel1
The Recordsource of the Child Form is Table2 joined with Table12.
In my Old Access Project, Access Triggered the Insert and filled Table12 with the NEW PK of Table2.
It seems like Access can't do that anymore....
I'm pretty desperate and I'm sure it is just a litte thing to fix.....
Maybe you are looking for
-
Threaded Sudoku solver - Assignment question (NOT LOOKING FOR ANSWERS )
Hi All, I'm going to be upfront and point out this is an assignment that i'm currently working on and i'm not receiving much in the way of feedback from the class forums. This is currently a 4th year OO assignment for UNSW Australia. What I am having
-
JDeveloper 11 - Feature Request
Sorry, I posted this in the wrong forum earlier - please see below - I would appreciate any further information that you may have on this matter - thanks in advance for your help Will JDeveloper 11 have any additional features/functionality to aid th
-
Is commit lock on Queue or QueueSpace?
Hello, when a transaction is committed in a Tuxedo Queue (/Q), does that lock the queue only or does it look the whole queue-space? I have a /Q with multiple TMQFORWARD and service handlers. There is a backlog in the /Q, but occasionally I have obser
-
How to lock excel sheets using java
hi, i have developed a web page using JSP which has to open an excel sheet and display the databese information in it. but the prblem is the excel sheet has to be locked such tht the clients accessing it can only read the data but not change it. can
-
HT4623 how to request iphone to be unlocked from carrier/apple
how do you get apple to unlock your iphone from the carrier,phone is out of contract.