Hierarchical connect by and start with and joins?

I've got an employees table and an identifiers table. The identifiers table is hierarchical, with parents and children. Each employee has one or more identifiers, but only one identifier is considered the "primary" or root identifier for each employee. Unfortunately, the employee table might be pointing at one of the child identifier rows and not the root. I need a fast query to join the employees with their most current (root) identifier.
Here's code to define the problem.
create table employees (employeeid varchar2(8), fakeNationalID varchar2(9), empname varchar2(30));
insert into employees (employeeid, fakeNationalID, empname) values (1,'001000001','John Smith');
insert into employees (employeeid, fakeNationalID, empname) values (2,'002000002','James Jones');
create table realids (realidkey NUMBER, fakeNationalID VARCHAR2(9) not null,
   realNationalID VARCHAR2(9) UNIQUE, parent_realidkey number);
insert into realids (realidkey, fakeNationalID, realNationalID, parent_realidkey) values
   (1,'001000001','111111111',3);
insert into realids (realidkey, fakeNationalID, realNationalID, parent_realidkey) values
   (2,'002000002','222222222',null);
insert into realids (realidkey, fakeNationalID, realNationalID, parent_realidkey) values
   (3,'003000003','333333333',null);
commit;  
create or replace function get_parentid (fakeID in VARCHAR2) return varchar2 is
   tempid VARCHAR2(9);
   begin
      select realNationalID into tempid
         from (
           select realNationalID, fakeNationalID
              from realids
              start with fakeNationalID = fakeID
              connect by nocycle prior parent_realidkey = realidkey
              order by level desc)
              where rownum = 1;
      return tempid;
      exception
         when NO_DATA_FOUND then
            return NULL;
         when others then raise;
    end;
select get_parentid('001000001') from dual; -- returns 333333333 because its linked to a parent
select get_parentid('002000002') from dual; -- returns 222222222 because there is only one child
select get_parentid('003000003') from dual; -- returns 333333333 because it is the parentWhat I want is to get the highest parent node in realids for each row in employees...
This works, but is NOT very efficient:
select employeeid, get_parentid(fakeNationalID) realid, empname from employees;
employeeid   realid       empname
1            333333333     John Smith
2            222222222     James JonesYou can imagine what this would be like with 100K rows or greater. It takes about 3 minutes to run.
This seemed like a good way to do this, but with a sub query.
select e.employeeid, e.fakenationalid, e.empname, sub.realnationalid
   from employees,
      (select realidkey, fakenationalid, realnationalid, parent_realidkey
         from realids r
         start with r.fakenationalid = e.fakenationalid
         connect by prior r.parent_realidkey = r.realidkey) subUnfortunately, it produces an invalid identifier on e.fakenationalid (in the start with clause).
Anyone have any ideas on how to get the top most parent node from the realids for each row in the employees table? In real life there are 6 or more employees tables spread across several remote instances some of which point at children in the realids table and some of which point at the parents. We always want the top most parent realid. Any help would be much appreciated.

Hi,
Thanks for posting the sample data in such a convenient form!
It always helps to post your Oracle version, too, especially when dealing with CONNECT BY queries.
The following does what you requested in Oracle 10:
WITH     got_roots   AS
     SELECT     CONNECT_BY_ROOT     fakenationalid     AS leaf_id
     ,     realnationalid
     FROM     realids
     WHERE     CONNECT_BY_ISLEAF     = 1
     START WITH      fakenationalid IN ( SELECT  fakenationalid
                                          FROM    employees
     CONNECT BY     realidKEY     = PRIOR parent_realidkey
SELECT     e.employeeid
,     r.realnationalid
,     e.empname
FROM     employees     e
JOIN     got_roots     r     ON     r.leaf_id     = e.fakenationalid
;In any query, calling a user-defined function for each row is going to be slow. Fortunately, Oracle now has built-in functions and operators that can take the place of get_parentid. The CONNECT_BY_ROOT operator, which was introduced in Oracle 10, is the key to this problem. In Oracle 9, you can get the same results using SYS_CONNECT_BY_PATH.
It's usually faster to do the CONNECT BY query separately, and then join whatever other tables you need to the results.
You had a good idea in your last query. The problem was that sub and employees were equal tables in the FROM clause, and you can't correlate equals. You can only correlate a sub-query to its super-query. You could make that general idea work by changing sub into a scalar sub-query,which could be correlated to employees, but I think it would be a lot less efficient than what I posted above.

Similar Messages

  • Improve hierarchical query speed using 'start with' and 'conect by prior'

    Hi
    The query within the 'explain' runs about a second and I need to imporve it.
    There are indexes set for both the child_id and the parent_id.
    The total number of rows for the PRM_COMPONENTS table is 120000.
    I'm working on 'Oracle Database 10g Release 10.2.0.4.0 - 64bit Production' in a Linux OS.
    I've included the explain plan below.
    Any suggestions would be appreciated.
    Thanks
    EXPLAIN PLAN FOR
    SELECT substr(SYS_CONNECT_BY_PATH(usage_title, '|'), 2, instr( SYS_CONNECT_BY_PATH(usage_title, '|'), '|', -1) -2 )
    FROM prm_components p
    WHERE LEVEL > 1 and usage_id = 10301100
    START WITH parent_usage_id is null
    CONNECT BY PRIOR usage_id = parent_usage_id;
    select * from table(dbms_xplan.display);
    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)|
    | 0 | SELECT STATEMENT | | 6 | 174 | 4 (0)|
    |* 1 | FILTER | | | | |
    |* 2 | CONNECT BY WITH FILTERING | | | | |
    |* 3 | TABLE ACCESS FULL | PRM_COMPONENTS | 69526 | 3937K| 2468 (1)|
    | 4 | NESTED LOOPS | | | | |
    | 5 | CONNECT BY PUMP | | | | |
    | 6 | TABLE ACCESS BY INDEX ROWID| PRM_COMPONENTS | 6 | 174 | 4 (0)|
    |* 7 | INDEX RANGE SCAN | PRM_PARENT_USAGE_ID_I | 2 | | 1 (0)|
    Predicate Information (identified by operation id):
    1 - filter(LEVEL>1 AND "USAGE_ID"=10301100)
    2 - access("PARENT_USAGE_ID"=PRIOR "USAGE_ID")
    3 - filter("PARENT_USAGE_ID" IS NULL)
    7 - access("PARENT_USAGE_ID"=PRIOR "USAGE_ID")
    Note
    - 'PLAN_TABLE' is old version

    Hi
    I've resolved the issue by other means but here is the description of the table anyways.
    USAGE_ID     NOT NULL     NUMBER
    PARENT_USAGE_ID          NUMBER
    PRODUCT_CODE     NOT NULL     VARCHAR2(12)
    PRINT_OR_ONLINE     NOT NULL     CHAR(1)
    SLP_ID          VARCHAR2(24)
    RELEASE_NAME          VARCHAR2(80)
    USAGE_TITLE          VARCHAR2(255)
    ENT_USAGE_TITLE          VARCHAR2(255)
    TRANS_TITLE          VARCHAR2(255)
    REVISION_TYPE          VARCHAR2(8)
    ACTIVE          CHAR(1)
    MARKED_FOR_DELETION          CHAR(1)
    CREATED_DT          DATE
    CREATED_BY          VARCHAR2(80)
    UPDATED_DT          DATE
    UPDATED_BY          VARCHAR2(80)
    PLANNING_COMMENTS          VARCHAR2(2000)
    OUTPUT_FILENAME          VARCHAR2(200)
    TRANSFORMER_ID          NUMBER(38)
    START_PAGE          VARCHAR2(8)
    START_PAGE_NUM          NUMBER
    END_PAGE          VARCHAR2(8)
    END_PAGE_NUM          NUMBER
    VOLUME          VARCHAR2(8)
    SORT_ORDER          NUMBER
    PRIORITY          NUMBER
    XREF_BLIND_ENTRY          CHAR(1)
    SPECIAL_CATEGORY          VARCHAR2(20)
    TO_BE_REVISED          CHAR(1)
    EDITOR          VARCHAR2(80)
    DUE_DT          DATE
    POSTED_DT          DATE
    LOGICAL_UOI_ID     NOT NULL     VARCHAR2(40)
    PHYSICAL_UOI_ID     NOT NULL     VARCHAR2(40)
    EDIT_APPROV_UOI_ID          VARCHAR2(40)
    EDIT_APPROV_BY          VARCHAR2(80)
    EDIT_APPROV_DT          DATE
    FINAL_APPROV_UOI_ID          VARCHAR2(40)
    FINAL_APPROV_BY          VARCHAR2(80)
    FINAL_APPROV_DT          DATE
    PHOTO_APPROV_UOI_ID          VARCHAR2(40)
    PHOTO_APPROV_BY          VARCHAR2(80)
    PHOTO_APPROV_DT          DATE
    RIGHTS_APPROV_UOI_ID          VARCHAR2(40)
    RIGHTS_APPROV_BY          VARCHAR2(80)
    RIGHTS_APPROV_DT          DATE
    LAYOUT_APPROV_UOI_ID          VARCHAR2(40)
    LAYOUT_APPROV_BY          VARCHAR2(80)
    LAYOUT_APPROV_DT          DATE
    BLUES_APPROV_UOI_ID          VARCHAR2(40)
    BLUES_APPROV_BY          VARCHAR2(80)
    BLUES_APPROV_DT          DATE
    LAST_PUB_ONLINE_DT          DATE
    LAST_PUB_PRINT_DT          DATE
    BLIND_ENTRY_ON_DT          DATE
    BLIND_ENTRY_OFF_DT          DATE
    DELIVERY_APPROV_UOI_ID          VARCHAR2(40)
    DELIVERY_APPROV_BY          VARCHAR2(80)
    DELIVERY_APPROV_DT          DATE
    APPROVAL_STATUS          VARCHAR2(40)
    CHANGE_SINCE_LAST_DELIVERY          CHAR(1)
    USAGE_COMMENTS          VARCHAR2(2000)
    LEXILE_CODE          VARCHAR2(18)
    SERIES          VARCHAR2(8)
    USAGE_TITLE_TMP          VARCHAR2(255)
    ENT_USAGE_TITLE_TMP          VARCHAR2(255)
    WORD_COUNT          VARCHAR2(10)
    READ_LEV          VARCHAR2(7)
    GRADES          VARCHAR2(80)
    DELIVERY_TYPE     NOT NULL     CHAR(1)
    METADATA_APPROVAL_STATUS          VARCHAR2(40)
    METADATA_APPROVAL_BY          VARCHAR2(80)
    METADATA_APPROVAL_DT          DATE
    RESOURCE_FLAG          CHAR(1)
    STZ_FLAG          CHAR(1)
    RESOURCE_TYPE_CODE          VARCHAR2(16)
    ASSET_DESCRIPTION          VARCHAR2(2000)
    ROLE_CODE          VARCHAR2(16)
    PROGRAMS_DATA          VARCHAR2(256)
    TIME_TO_COMPLETE          VARCHAR2(32)
    ENTITLEMENTS_DATA          VARCHAR2(256)
    ISBN_10          VARCHAR2(32)
    ISBN_13          VARCHAR2(32)
    MFG_ITEM_NO          VARCHAR2(256)
    AR          CHAR(1)
    SRC          CHAR(1)
    SRC_POINTS          NUMBER
    AUTHORS          VARCHAR2(320)
    SEARCH_STRINGS          VARCHAR2(2000)
    PATH_SLP_ID          VARCHAR2(256)
    PATH_GTC          VARCHAR2(256)
    PATH_TITLE          VARCHAR2(2560)
    GRL          VARCHAR2(8)
    COMMON_CORE          CHAR(1)

  • Using START WITH and CONNECT BY PRIOR in a report

    Hi - I am using Oracle 9i and reports 10g. Does anyone know of a reason why running my sql in TOAD will produce the correct results, but the report is dropping records? I am using start with and connect by prior to build a hierarchy of linked records. The report is dropping the "child records" and only returning records from the route level.
    Thanks you for your help.

    Hi user574499
    Could u pls share us ur Query...?
    Regards,
    Abdetu...

  • How to use SQL filtercondition 'Start with' and 'connect by' in ADF's LOV?

    Hello every!
    I can not use 'Start with' and 'connect by' with parameter in creating ADF's LOV?
    How could I do with it?
    Alex

    assuming you are using adf 11g,
    You need to use View Criteria with the View Object attribute that has a LOV model.
    Follow this, to get some idea http://andrejusb.blogspot.com/2008/12/cascading-lovs-in-oracle-adf-11g-update.html
    hope this helps,

  • Connect by and start with

    what do these comands do connect by and start with ? please answer thanks

    what do these comands do connect by and start with ? please answer thanks Here's an example that may help. In the EMP table you have all employees of a company; this includes
    all levels, President, managers, and (regular) employees.
    Let's say you want to know who works for who.
    First, just to see who is in the table
    select empno, ename, job from emp;
    EMPNO     ENAME     JOB           MGR
    7901     CLARK     MANAGER            7900
    7902     MILLER     CLERK          7901
    7903     SMITH     CLERK          7905
    7904     ADAMS     CLERK          7906
    7905     FORD     ANALYST          7907
    7906     SCOTT     ANALYST          7907
    7907     JONES     MANAGER     7900
    7908     ALLEN     SALESMAN     7909
    7909     BLAKE     MANAGER     7900
    7910     MARTIN     SALESMAN     7909
    7911     JAMES     CLERK          7912
    7912     TURNER     SALESMAN     7909
    7913     WARD     SALESMAN     7909
    7900     KING     PRESIDENT
    [\CODE]
    Now, using the START WITH and CONNECT BYSELECT LPAD(' ',2*(LEVEL-1)) || ename org_chart,
    empno, mgr, job
    FROM emp
    START WITH job = 'PRESIDENT'
    CONNECT BY PRIOR empno = mgr
    ORG_CHART     EMPNO     MGR     JOB
    KING          7900          PRESIDENT
    CLARK          7901     7900     MANAGER
    MILLER          7902     7901     CLERK
    JONES          7907     7900     MANAGER
    FORD          7905     7907     ANALYST
    SMITH          7903     7905     CLERK
    SCOTT          7906     7907     ANALYST
    ADAMS     7904     7906     CLERK
    BLAKE          7909     7900     MANAGER
    ALLEN          7908     7909     SALESMAN
    MARTIN          7910     7909     SALESMAN
    TURNER          7912     7909     SALESMAN
    JAMES          7911     7912     CLERK 30
    WARD          7913     7909     SALESMAN
    [\CODE]

  • Videos on Tenplay keep stopping and starting with wi-fi. Is there a fix??

    Videos/episodes on Tenplay keep stopping and starting with wi-fi. Is there a fix??

    Are you saying to use an ethernet cable and plug Apple TV into an ethernet port on the router??
    The router is in the study room and the Apple TV is in the lounge room, it is not far away but can't reach. How am I supposed to connect an ethernet cable it is too short and can not reach the router??

  • How i use start with and rollup both in one query

    hi master
    sir i use rollup function for subtotal but rollup not give tree
    for tree i want to use start with and connect by function
    but that query give error
    sir how i use both rollup and start with connect by in one query
    for tree wise subtotal
    please give me idea
    thanking you

    hi master
    thank for your reply
    sir i get accid and title from master table and balance from detial table then system give me error
    sir i send me all table and data with query and error
    Sir this is my master table
    SQL> desc chartofacc;
    Name Null? Type
    PARENT NUMBER
    CHILD NUMBER
    ACCID NOT NULL VARCHAR2(15)
    TITLE VARCHAR2(99)
    CAMPID VARCHAR2(2)
    ACTIVE NUMBER
    FSTATUS NUMBER
    Data
    Parent child accid
         1     K1
    1     11     K11
    11     1101     K1101
    11     1102     K1102
    11     1103     K1103
    11     1104     K1104
    11     1105     K1105
    11     1106     K1106
    11     1107     K1107
    11     1108     K1108
    11     1109     K1109
    11     1110     K1110
    11     1111     K1111
    11     1112     K1112
    11     1113     K1113
    11     1114     K1114
    1     12     K12
    12     1201     K1201
    12     1202     K1202
    12     1203     K1203
    1     13     K13
    13     1301     K1301
    1301     130101     K130101
    1301     130102     K130102
    1301     130103     K130103
    1301     130104     K130104
    1301     130105     K130105
    1301     130106     K130106
    1301     130107     K130107
    1301     130108     K130108
    1301     130109     K130109
    1301     130110     K130110
    1301     130111     K130111
    1301     130112     K130112
    1301     130113     K130113
    1301     130114     K130114
    1301     130115     K130115
    13     1302     K1302
    1302     130201     K130201
    1302     130202     K130202
    1302     130203     K130203
    1302     130204     K130204
    1302     130205     K130205
    13     1303     K1303
    1303     130301     K130301
    1303     130302     K130302
    1303     130303     K130303
    13     1304     K1304
    1304     130401     K130401
    1304     130402     K130402
    1304     130403     K130403
    1304     130404     K130404
    1304     130405     K130405
    1304     130406     K130406
    1304     130407     K130407
    1304     130408     K130408
    13     1305     K1305
    1305     130501     K130501
    1305     130502     K130502
    13     1306     K1306
    1306     130601     K130601
    13     1307     K1307
    1307     130701     K130701
    1307     130702     K130702
    1307     130703     K130703
    1307     130704     K130704
    13     1308     K1308
    1308     130801     K130801
    1308     130802     K130802
    1308     130803     K130803
    1308     130804     K130804
    1308     130805     K130805
    1308     130806     K130806
    1308     130807     K130807
    1308     130808     K130808
    1308     130809     K130809
    1308     130810     K130810
    1308     130811     K130811
    1308     130812     K130812
    1308     130813     K130813
    13     1309     K1309
    13     1310     K1310
    13     1311     K1311
    1311     131101     K131101
         2     K2
    2     21     K21
    21     2101     K2101
    2101     210101     K210101
    2101     210102     K210102
    2101     210103     K210103
    2101     210104     K210104
    21     2102     K2102
    2102     210201     K210201
    2102     210202     K210202
    2102     210203     K210203
    2102     210204     K210204
    21     2103     K2103
    2103     210301     K210301
    2103     210302     K210302
    2103     210303     K210303
    2103     210304     K210304
    21     2104     K2104
    2104     210401     K210401
    2104     210402     K210402
    2104     210403     K210403
    2104     210404     K210404
    2     22     K22
    22     2201     K2201
    2201     220101     K220101
    2201     220102     K220102
    2201     220103     K220103
    2201     220104     K220104
    2201     220105     K220105
    22     2202     K2202
    2202     220201     K220201
    2202     220202     K220202
    2202     220203     K220203
    2202     220204     K220204
    22     2203     K2203
    2203     220301     K220301
    2203     220302     K220302
    2203     220303     K220303
    2203     220304     K220304
    22     2204     K2204
    2204     220401     K220401
    2204     220402     K220402
    2204     220403     K220403
    22     2205     K2205
    2205     220501     K220501
    2205     220502     K220502
    220502     22050201     K22050201
    220502     22050202     K22050202
    220502     22050203     K22050203
    220502     22050204     K22050204
    22     2206     K2206
    2206     220601     K220601
    2206     220602     K220602
    2206     220603     K220603
    2206     220604     K220604
    2     23     K23
    23     2301     K2301
    2301     230101     K230101
    2301     230102     K230102
    2301     230103     K230103
    2301     230104     K230104
    2301     230105     K230105
    2301     230106     K230106
    2301     230107     K230107
    2301     230108     K230108
    23     2302     K2302
    2302     230201     K230201
    2302     230202     K230202
    2302     230203     K230203
    2302     230204     K230204
    23     2303     K2303
    2303     230301     K230301
    2303     230302     K230302
    23     2304     K2304
    2304     230401     K230401
    2304     230402     K230402
    2304     230403     K230403
    23     2305     K2305
    2305     230501     K230501
    23     2306     K2306
    2306     230601     K230601
    2306     230602     K230602
    2306     230603     K230603
    2306     230604     K230604
    23     2307     K2307
    23     2308     K2308
    2308     230801     K230801
    2308     230802     K230802
    2308     230803     K230803
    23     2309     K2309
    2309     230901     K230901
    2309     230902     K230902
    2309     230903     K230903
    2309     230904     K230904
    23     2310     K2310
    2310     231001     K231001
    2310     231002     K231002
    2310     231003     K231003
    23     2311     K2311
    2311     231101     K231101
    2311     231102     K231102
    2311     231103     K231103
    23     2312     K2312
    2312     231201     K231201
    2312     231202     K231202
    2312     231203     K231203
    2312     231204     K231204
    23     2313     K2313
    2313     231301     K231301
    2313     231302     K231302
    2313     231303     K231303
    2313     231304     K231304
    2313     231305     K231305
    2313     231306     K231306
    2313     231307     K231307
    2313     231308     K231308
    2313     231309     K231309
    2313     231310     K231310
    2313     231311     K231311
    2313     231312     K231312
    2313     231313     K231313
    2313     231314     K231314
    2313     231315     K231315
    23     2314     K2314
    2314     231401     K231401
    2314     231402     K231402
    2314     231403     K231403
    2314     231404     K231404
    2314     231405     K231405
    2314     231406     K231406
    2314     231407     K231407
    23     2315     K2315
    23     2316     K2316
    2316     231601     K231601
    2316     231602     K231602
    23     2317     K2317
    23     2318     K2318
    23     2319     K2319
    2319     231901     K231901
    2319     231902     K231902
    2319     231903     K231903
    2319     231904     K231904
    2319     231905     K231905
    2319     231906     K231906
    23     2320     K2320
    2320     232001     K232001
         3     K3
    3     31     K31
    31     3101     K3101
    31     3102     K3102
    31     3103     K3103
    31     3104     K3104
    31     3105     K3105
    3     32     K32
    32     3201     K3201
    32     3202     K3202
    32     3203     K3203
    32     3204     K3204
    32     3205     K3205
    32     3206     K3206
    32     3207     K3207
         4     K4
    4     41     K41
    41     4101     K4101
    4101     410101     K410101
    4101     410102     K410102
    4101     410103     K410103
    4101     410104     K410104
    4101     410105     K410105
    4101     410106     K410106
    4101     410107     K410107
    4101     410108     K410108
    4101     410109     K410109
    4101     410110     K410110
    4101     410111     K410111
    4101     410112     K410112
    4101     410113     K410113
    4101     410114     K410114
    4101     410115     K410115
    4101     410116     K410116
    4101     410117     K410117
    4101     410118     K410118
    4101     410119     K410119
    4101     410120     K410120
    4101     410121     K410121
    4101     410122     K410122
    4101     410123     K410123
    4101     410124     K410124
    4101     410125     K410125
    4101     410126     K410126
    4101     410127     K410127
    4101     410128     K410128
    4101     410129     K410129
    4101     410130     K410130
    4101     410131     K410131
    4101     410132     K410132
    41     4102     K4102
    41     4103     K4103
    41     4104     K4104
    4104     410401     K410401
    4104     410402     K410402
    4104     410403     K410403
    4104     410404     K410404
    41     4105     K4105
    41     4106     K4106
    41     4107     K4107
    41     4108     K4108
    4108     410801     K410801
    4108     410802     K410802
    4108     410803     K410803
    41     4109     K4109
    4109     410901     K410901
    4109     410902     K410902
    4109     410903     K410903
    41     4110     K4110
    41     4111     K4111
    4111     411101     K411101
    4111     411102     K411102
    4111     411103     K411103
    41     4112     K4112
    4112     411201     K411201
    41     4113     K4113
    4113     411301     K411301
    41     4114     K4114
    4114     411401     K411401
    4114     411402     K411402
         5     K5
    5     51     K51
    51     5101     K5101
    51     5102     K5102
    51     5103     K5103
    51     5104     K5104
    51     5105     K5105
    51     5106     K5106
    51     5107     K5107
    51     5108     K5108
    51     5109     K5109
    51     5110     K5110
    51     5111     K5111
    51     5112     K5112
    51     5113     K5113
    51     5114     K5114
         6     K6
    6     61     K61
         7     K7
    7     71     K71
    7     72     K72
    7     73     K73
    7     74     K74
    7     75     K75
    7     76     K76
    This is my detil table
    SQL> desc accbal;
    Name Null? Type
    ACCID VARCHAR2(15)
    YEARID NUMBER
    CRBAL NUMBER
    DRBAL NUMBER
    ENTDATE DATE
    BALID NUMBER
    Data in detail
    K1101     46291132     
    K1102     13182173     
    K1103     23784045     
    K1107     10001795     
    K1108     9083529     
    K1110     4224350     
    K1112     6696832     
    K1113     7963381     
    K1114     742766     
    K1201     1486082     
    K130104     1977616     
    K130106     736266     
    K130107     396673     
    K130108     42751     
    K130109     298362     
    K130110     187696     
    K130111     537     
    K130112     942     
    K130113     987     
    K130114     1272     
    K130115     40000     
    K130205     259941     
    K130303     177716     
    K130406     809719     
    K130408     1786091     
    K130701     301000     
    K130702     151200     
    K130703     7570     
    K130704     34400     
    K1308          
    K130801     5400     
    K130802     45000     
    K130803     10856     
    K130807     24300     
    K130808     16500     
    K130810     104500     
    K130811     60000     
    K130812     181000     
    K130813     1750000     
    K1309     1225565     
    K1310     2176259     
    K1311          
    K131101     788780     
    K410101          24926
    K410102          9545
    K410103          28500
    K410104          8192
    K410105          847
    K410106          37100
    K410107          2332
    K410108          9844
    K410109          7843
    K410110          9313
    K410111          1425
    K410112          6089
    K410113          15497
    K410114          5790
    K410115          4251
    K410116          22293
    K410117          855
    K410118          6497
    K410119          14996
    K410120          124214
    K410121          6713
    K410122          1567
    K410123          75821
    K410124          5085
    K410125          7125
    K410126          4342
    K410127          21485
    K410128          641111
    K410129          589
    K410130          50
    K410131          163900
    K410132          3849
    K4105          3946489
    K4107          100000
    K410801          972011
    K410802          1707806
    K410803          116450
    K4110          13113874
    K411101          98335
    K411102          32454
    K411103          53569
    K411201          25327406
    K411301          7143103
    K411401          4500000
    K411402          12754
    K5102          2120031
    K5103          13543810
    K5107          4596103
    K5108          5604493
    K5110          2008401
    K5112          2182778
    K5113          4748537
    K5114          556914
    K61          43297680
    Sir I use this query
    select lpad(' ',2*(level-1)) || to_char(child),title,sum(drbal),sum(crbal),
    from chartofacc, accbal
    where chartofacc.accid=accbal.accid(+)
    start with parent is null
    connect by prior child = parent
    group by rollup(substr(mas.accid,2,1),substr(mas.accid,3,1),substr(mas.accid,4,2),substr(mas.accid,6,2) ,chartofacc.accid,title,fstatus);
    sir this query not give me result and give me error this
    SQL> /
    from chartofacc, accbal
    ERROR at line 2:
    ORA-00936: missing expression
    Please give me idea how I get tree type subtotal tribalance
    Thanking you
    Aamir

  • After Upgrading to 10.6.8 my aperture app starts but hangs trying to read the Lib. I removed the old lib and start with new. but still have the problem. 10.6.8 also made my Shark FX7 do the same thing. Any Ideas? Thanks

    After Upgrading to 10.6.8 my aperture app starts but hangs trying to read the Lib. I removed the old lib and start with new. but still have the problem. 10.6.8 also made my Shark FX7 do the same thing. Any Ideas? Thanks

    Verifying volume “Macintosh HD”
    Performing live verification.
    Checking Journaled HFS Plus volume.
    Checking extents overflow file.
    Checking catalog file.
    Checking multi-linked files.
    Checking catalog hierarchy.
    Checking extended attributes file.
    Checking volume bitmap.
    Checking volume information.
    The volume Macintosh HD appears to be OK.

  • My lap top is extremly slow. It studders. It kind of sounds like there is a fan inside and it constantly stopping and starting. And, it takes a really long time for it too start up. Whats wrong with it?

    My lap top is extremly slow. It studders. It kind of sounds like there is a fan inside and it constantly stopping and starting. And, it takes a really long time for it too start up. Whats wrong with it?

    Do you have current backups?
    Those symptoms could indicate a failing Hard drive. If it dies, all your documents go with it unless you have Backups.
    I have had very good luck with physical and battery problem diagnosis at the Genius Bar. Those guys put their hands (and their ears) to these machines, all day every day, and they know immediately what all those sounds mean.
    Your appointment for an evaluation is FREE, in warranty or out.

  • I'm trying to load everything from my phone to computer so I can reset for phone and start clean and when I plug it in the computer nothing comes up and there is a connection what going on

    I'm trying to load everything from my phone to computer so I can reset for phone and start clean and when I plug it in the computer nothing comes up and there is a connection what going on

    Is your iPhone not showing up in iTunes sidebar, or is iTunes not just launching automatically?
    The things that you can check are:
    1) Launch iTunes manually
    2) Restart or reset your iPhone (http://support.apple.com/kb/ts3281)
    3) Check your cable including disconnecting and reconnecting it on bot the phone end and the computer USB end.
    4) Reboot your computer
    5) As a last resort, take it to the Apple Store so they can check the hardware

  • Is it ok to leave my old photos in Aperature and start with new photos in Lightroom?  MacPro with 2 x 2.26 Ghz Quad-Core Intel Xeon processor, 6 GB memory, 1 TB harddrive.

    Is it ok to leave my old photos in Aperature and start with new photos in Lightroom?  MacPro with 2 x 2.26 Ghz Quad-Core Intel Xeon processor, 6 GB memory, 1 TB harddrive?
    Or should I transfer them to Lightroom?

    That's really a personal preference. Support for Aperture is coming to an
    end and you may find yourself unable to get to theses photos in the future
    in the case of a HDD crash if you can't get the software to reinstall.
    Faced with that prospect, I would probably put it on my list of things to
    do when I am feeling really bored and looking for something to amuse myself
    with. You can export your Aperture photos in their original format to a
    folder on your desktop and then import them into Lightroom. Use the copy
    option on the import to save the photos in a new folder within your
    Lightroom catalog.

  • HT2729 I bought a TV episode from iTunes (I have version 10 installed), but when I try to play it on my laptop, it keeps stopping and starting, with the voices out of sync with the action.  The action is stop/start as well.  What settings can I change to

    I bought a TV episode from iTunes (I have version 10 installed), but when I try to play it on my laptop, it keeps stopping and starting, with the voices out of sync with the action.  The action is stop/start as well., and occasionally it skips 5 or 10 seconds altogether, making it impossible to watch.  What settings can I change to fix the problem.

    Repair your QuickTime.
    Control Panel > Programs n Features > highlight QuickTime and click CHANGE then REPAIR.

  • I want to wipe my computer clean and start with a new installation of Lion

    My MBP has been acting strange.  I want to wipe it completely clean and start with a brand new installation of Lion.  How do I do that?  I know I can access the recovery partition by pressing 'Command+r' during the boot process.  However, do I need to use the disk utility option first and erase my internal hard drive?  Then do I use the new lion instal option?
    Or if I choose the new lion isntallation from the recovery partition, does it erase my drive first?
    -jon

    What error?
    The sync is one way - computer to iphone.  The only exception is itunes purchases.  File>Transfer Purchases
    It has always been very basic to always maintain a backup copy of your computer.  Have you failed to do this?

  • Javax.faces.ViewState value starts with '%' and not with '!'

    While recording and ADF Application on JMeter, what should the regular expression extractor be when the javax.faces.ViewState recorded value starts with '%' and not with '!'.
    I have been following the following link and it talks only about javax.faces.ViewState values that start with '!'
    http://one-size-doesnt-fit-all.blogspot.in/2010/04/configuring-apache-jmeter-specifically.html

    Hi,
    If '!' present in first position of string, you need to remove it or replace it in transformation.
    Following is the  sample code...
    loop at SOURCE_PACKAGE into ls_SOURCE_PACKAGE.
          record_num = sy-tabix.
          IF ( ls_SOURCE_PACKAGE-fieldname(1) = '!' ).
            ls_SOURCE_PACKAGE-fieldname(1) = '' .
    ENDIF.
        MODIFY SOURCE_PACKAGE INDEX record_num FROM LS_SOURCE_PACKAGE.
      ENDLOOP.
    Hope this helps..

  • START WITH and CONNECT BY in Oracle SQL ( hierarchical relationship)

    Hi, the original table as below
    Customer_ID         Account_ID          Paying_Account_ID         Parent_Account_ID          Company_ID
    158                    158                    158                         158                     0
    159                    159                    158                         158                     0
    160                    160                    158                         158                     0
    181                    181                    181                         181                     0
    183                    183                    183                         183                     0
    24669                  24669                  24669                       24669                   0        
    24671                  24671                  24671                       24669                   0
    24670                  24670                  24670                       24669                   0    
    3385127                3385127                3385127                     24670                   0To identify the hierarchical relationship of the data, which are PARENT_ACCOUNT_ID & ACCOUNT_ID, below is the query that I was used.
    select  lpad(' ', 2*level) || A.ACCOUNT_ID AS LEVEL_LABEL, CONNECT_BY_ISCYCLE "Cycle", LEVEL, A.* from ACCOUNT A
    START WITH parent_account_id = account_id
    CONNECT BY NOCYCLE  PRIOR A.ACCOUNT_ID = A.PARENT_ACCOUNT_ID
    AND account_id != parent_account_id
    ;This is the result from the query
    Level_Label              Level          Cycle        Customer_ID             Account_ID        Paying_Account_ID      Parent_Account_ID      Company_ID
    158                         1             0              158                     158              158                   158                     0
       159                      2             0              159                     159              158                   158                     0
       160                      2             0              160                     160              158                   158                     0
    181                         1             0              181                     181              181                   181                     0
    183                         1             0              183                     183              183                   183                     0
    24669                       1             0              24669                   24669            24669                 24669                   0      
        24671                   2             0              24671                   24671            24671                 24669                   0
        24670                   2             0              24670                   24670            24670                 24669                   0
            3385127             3             0              3385127                 3385127          3385127               24670                   0My questions is how can I modified the query in order to calcuate the values for:
    My_Total_PR - Number of my child PR accounts which doest not include itself.
    Total_PR - Total number of PR accounts in the overall structure
    My_Total_NPR - Number of my child NPR accounts which doest not include itself.
    Total_NPR - Total number of NPR accounts in the overall structure
    *PR stand for payment responsible, for instance the payment responsible for Account 158 is 158 (Paying_Account_ID), so the Total_PR for 158 is 3 (158, 159, 160)
    *NPR stand for Non payment responsible, for instance the payment responsible for Account 159 is 158 (Paying_Account_ID), so the Total_NPR for 159 is 1
    This is the expected result, Any advice much appreciated. Thanks
    Level_Label                     Level           Cycle           My_Total_PR     Total_PR     My_Total_NPR     Total_NPR     Paying_Account
    158                               1                0                  2              3          0              0              158
        159                           2                0                  0              0          0              1              158
        160                           2                0                  0              0          0              1              158
    181                               1                0                  0              1          0              0              181
    183                               1                0                  0              1          0              0              183
    24669                             1                0                  0              1          3              3              24669                  
        24671                         2                0                  0              1          0              0              24671
        24670                         2                0                  0              1          1              1              24670
            3385127                   3                0                  0              1          0              0              3385127Edited by: user11432758 on 14-Feb-2012 01:00
    Edited by: user11432758 on 14-Feb-2012 07:05

    Hi,
    user11432758 wrote:
    Hi below is the DDL statment, thanks
    CREATE TABLE "SYSTEM"."ACCOUNT" ...
    Don't create your own objects in the SYSTEM schema, or any schema that comes with the database. Create a separate schema, and put your objects into it. You'll have fewer security problems, and migrating to a new database will be easier.
    Here's one way to can get the aggregates that you want:
    WITH     got_descendants          AS
         SELECT     CONNECT_BY_ROOT account_id     AS ancestor_id
         ,     paying_account_id
         ,     LEVEL                    AS lvl
         FROM     account
         CONNECT BY NOCYCLE     PRIOR account_id     = parent_account_id
              AND          account_id          != parent_account_id
    SELECT       ancestor_id
    ,       COUNT (CASE WHEN lvl             > 1
                      AND  ancestor_id  = paying_account_id THEN 1 END)     AS my_total_pr
    ,       COUNT (CASE WHEN ancestor_id  = paying_account_id THEN 1 END)     AS total_pr
    ,       COUNT (CASE WHEN lvl             > 1
                      AND  ancestor_id != paying_account_id THEN 1 END)     AS my_total_npr
    ,       COUNT (CASE WHEN ancestor_id != paying_account_id THEN 1 END)     AS total_npr
    FROM       got_descendants
    GROUP BY  ancestor_id
    ;Output:
    `             MY_         MY_
                TOTAL TOTAL TOTAL TOTAL
    ANCESTOR_ID   _PR   _PR  _NPR  _NPR
            158     2     3     0     0
            159     0     0     0     1
            160     0     0     0     1
            181     0     1     0     0
            183     0     1     0     0
          24669     0     1     3     3
          24670     0     1     1     1
          24671     0     1     0     0
        3385217     0     1     0     0This gives you the right numbers, but how can we get them in an order that reflects the hierarchy, with the columns (such as lvl) that are derived from the hierarchy?
    One way would be to do two CONNECT BY queries; one without a START WITH clause (like the one above) that gets the aggregates, and the other with a START WITH clause (like your original query), that is in the right order, and has columns such as level_label and level. We could join the result sets and get exactly what we want. I'll leave that as an exercise.
    Here's another way, that gets the right results with only one CONNECT BY query:
    WITH     got_descendants          AS
         SELECT     CONNECT_BY_ROOT account_id     AS ancestor_id
         ,     paying_account_id
         ,     account_id
         ,     LEVEL                    AS lvl
         ,     CONNECT_BY_ISCYCLE          AS cycle
         ,     CASE
                  WHEN  CONNECT_BY_ROOT account_id
                      = CONNECT_BY_ROOT parent_account_id
                  THEN  ROWNUM
              END                    AS r_num
         FROM     account
         CONNECT BY NOCYCLE     PRIOR account_id     = parent_account_id
              AND          account_id          != parent_account_id
         ORDER SIBLINGS BY     account_id     -- Optional
    ,     got_o_num     AS
         SELECT     got_descendants.*
         ,     MIN (r_num) OVER (PARTITION BY  account_id)     AS o_num
         ,     MAX (lvl)   OVER (PARTITION BY  account_id)      AS max_lvl
         FROM     got_descendants
    SELECT       LPAD ( ' '
                , 2 * (MIN (max_lvl) - 1)
                )  || ancestor_id                         AS level_label
    ,       MIN (max_lvl)                                AS "Level"
    ,       MIN (cycle)                                   AS "Cycle"
    ,       COUNT (CASE WHEN lvl             > 1
                      AND  ancestor_id  = paying_account_id THEN 1 END)     AS my_total_pr
    ,       COUNT (CASE WHEN ancestor_id  = paying_account_id THEN 1 END)     AS total_pr
    ,       COUNT (CASE WHEN lvl             > 1
                      AND  ancestor_id != paying_account_id THEN 1 END)     AS my_total_npr
    ,       COUNT (CASE WHEN ancestor_id != paying_account_id THEN 1 END)     AS total_npr
    ,       MIN (paying_account_id)                                    AS paying_account
    FROM       got_o_num
    GROUP BY  ancestor_id
    ORDER BY  MIN (o_num)
    ;Output:
    `                             MY_         MY_
                                TOTAL TOTAL TOTAL TOTAL  PAYING_
    LEVEL_LABEL     Level Cycle   _PR   _PR  _NPR  _NPR  ACCOUNT
    158                 1     0     2     3     0     0      158
      159               2     0     0     0     0     1      158
      160               2     0     0     0     0     1      158
    181                 1     0     0     1     0     0      181
    183                 1     0     0     1     0     0      183
    24669               1     0     0     1     3     3    24669
      24670             2     0     0     1     1     1    24670
        3385217         3     0     0     1     0     0  3385217
      24671             2     0     0     1     0     0    24671This is exactly what you requested, except that you posted the row with level_label='  24671' before the row with level_label='  24671'. You may not care which of those comes first, but if that's important, explain why those rows need to be in descending order by account_id, while '159 and '160' are in ascending order. You'll need to change the ORDER SIBLINGS BY clause accordingly.

Maybe you are looking for

  • Trying to import a weird table format into a tree like structure.

    Hi All, I am using NWDS 7.0.18 I am trying to use the Tree in a table element to organize some data I'm receiving from an rfc. The table im receiving looks a little like this: leaf1  |  leaf2 |  root  |  child1 |  child2  | 00     |  ab    |   r     

  • MacBook Air is not booting

    I have a MacBook Air with Mac OS X Leopard (10.5). I am trying to boot the system and I can not. The problem is that when the system boots and i am inserting my passcode it accepts the code and it starts the booting to the desktop screen, but instead

  • Unable to create new domain for ORM in Weblogic 8.1

    Hi, I have installed Oracle Role Manager(ORM) 10.1.4 and to run ORM in weblogic i have to create a new domain for ORM. I tried to create a new domain in weblogic 8.1 in configuration wizard by selecting the orm_createdomain_template_103.jar but i m g

  • TV Output w/o Tieing Up Computer for fx5200-vtd128

    Is there a way to output a video to the TV without it showing on my monitor? then i could use my computer while i watch a movie.

  • Make portal instance anonymous with WPC content

    Hello, We have portal instance running our intranet site. Currently we allow user to access this by login to it using LDAP authetication mechanism. Our plan is to make it Anonymous. But we also have Wep Page Composer content and for that we want user