Format result-set of join (split parent/child rows)

Hi,
I have the need to do a simple join however instead of returning all the columns from both the joined tables in 1 row, we need to have them split into multiple rows (i.e. parent record info on 1 row and child record info on the next)
e.g. If we have the following data:
table_1
id    parent_id
101    null
102    null
103    null
104    101
105    101
106    102
I need the data as follows:
id    parent_id    record_type
101    null        'parent'
104    101        'child'
105    101        'child'
102    null        'parent'
106    102        'child'
(note: since 103 did not have any children, it was not returned (as expected & as desired) - also, dont worry about order of results for now)
This can be achieved this by using the following:
;with temp
as
select [id],parent_id,[header_1],'parent' as type
from table1
temp2 as
select [id],parent_id,[header_1],'child' as type
from table1
select distinct A.*
from temp A
join temp2 B on B.parent_id = A.id
union
select distinct B.*
from temp A
join temp2 B on B.parent_id = A.id
However, is there any better/more efficient way to get this?
Appreciate any help on this.

For future reference, I'll point out that you ask 2 very different questions.  When you ask about "better", you need to define how you measure that quality.  "Better", like "pretty", has no universal measure.  
Next, you ask about "more efficient".  Well, your example is very simplistic - perhaps to the point of being unreasonably so.  You measure efficiency by examining the query plan - and that requires an actual populated table, with indexes,
constraints, and data that accurately reflects your data  in both size and distribution of values. If you simplify things too much, you may find that your attempts to improve things lead you down the wrong path.  
Also, be careful what you assume about your data.  You have conveniently created a set of rows that have a rather natural order.  If you care about the order of your resultset - and generally someone somewhere does - then you need to develop a
solution that works for all situations and does not implicitly rely on assumptions.  And that requires that you put some thought into choosing your sample/test data.  With that said, below is yet another alternative:
if object_id('table_1') is not null
drop table table_1;
go
create table table_1 (id int not null constraint pkx primary key, parent_id int null);
alter table table_1 add constraint fkx foreign key (parent_id) references table_1 (id);
go
insert table_1(id, parent_id)
values (101, null), (102, null), (103, null), (104, 101), (105, 101), (106, 102), (5, 102);
with cte as (select * from table_1 as src
where parent_id is not null or
(parent_id is null and exists (select * from table_1 as chld where chld.parent_id = src.id)))
select *, case when parent_id is null then 'parent' else 'child' end as record_type from cte
order by isnull(parent_id, id), case when parent_id is null then 0 else 1 end, id;
go
Notice the additional row of data I added where id = 5.   I will also add that you should use "union all" and not "union".  There is no need to force the engine to do work that is not needed.   

Similar Messages

  • Merge data/result sets that are't parent/child?

    Hi:
    I've seen a few examples of making a data template so that a BI report can have master/detail data. They make a Q1 data set and a Q2 data set with a bind variable to link the two in a parent/child relationship.
    But what I need is effectively a UNION. I have the same table on multiple database instances and I want to show the grouped results in one report as if it all came from one table. The master/detail examples have a section defining grouping but they group by Q1 (see here)
    http://blogs.oracle.com/BIDeveloper/data_template/
    and I need to group by a column that is in Q1 and Q2 to "merge" the two data sets.
    Has anyone done this?
    Thanks.

    I've messed up what I had! lol
    I'll try and recreate things tomorrow and get it to you, thanks.
    I seem to be having some quirks with all this (or I'm just confused). I initially had a data model that selected a few columns and a count(*) an grouped the results. I modified the data model to not have the count but every time I do "insert table/chart" in RTF the count column shows up as a possible column to move over with >>. I've re-opened the document so it should have the latest data model. Is this normal? A bug? Am I just lost?
    Thanks.

  • Updateable scrollable result sets with join statement

    I am writing a generic GUI fronend for any database that has a JDBC2.0 driver available.
    I have been using scrollable updateable result sets. These work well for individual tables but as soon as two tables are linked either implicitly or explicitly with a join statement the result set meta data isDefinitelyWriteable is set to false thus preventing the result set from being updated.
    Assuming I am using the JDBC-ODBC driver with java sdk1.4.0 and MS Access (although I have used other databases and JDBCs I assume that the one mentioned will be a common combination and needs to work) is there any way of getting linked tables to be updateable with scollable result sets.
    I am using scrollable result sets since this prevents the necessity of putting the data in a secondary data store.
    I am able to link tables programmatically by requerying the linked table with a new where clause each time the cursor moves in the linked table but this seems rather wasteful. This method is not vey satisfactory when attempting to display data from more than one table which have more than one linked level (i.e. cascaded links).
    Is there a simple solution to this problem or do I have to do a rewrite using an update statement instead of having an updateable result set. I assume this method would also require the result set to be reloaded after the update.
    Any suggestions much appreciated.

    I am trying to make the GUI as flexible as possible by constructing "views" which if necessary link tables on one field in each table. This is fine for two tables but when linking to several tables the information thats produced cannot be read easily because as it stands the information from each table is displayed on a separate tabbed page. This mechanism allows me to keep each record set for each table separate and updateable.
    Since I could see that this was not very user friendly in the way that it displayed the data I decided to try and introduce a join on two or more tables and hence the introduction of the current problem.
    I mentioned that the objective was to be flexible and therefore I also allow queries to be written by the user to facilitate for any shortfalls of the automatic query construction produced by using the "views" mechanism.
    So the answer to your question is yes I do control the SQL selections with one mechanism but ultimately no I do not because I provide a fail safe which allows the user to enter arbitary SQL.
    I only really want a solution for the controlled SQL construction mechanism where I create the link between two or more tables. As mentioned earlier these are linked on one field only but I wish to provide the option of displaying the result in a single table (tabbed page) rather than spread across multiple tabbed pages.

  • Error in result set from join query

    I get a SQL exception from the JDBC thin driver when I make a getXXX( "string" ) call on a result set object when the query is a join. Aliases don't seem to help.
    Below is the stack trace.
    Anybody have any ideas?
    matt
    ResultSet.findColumn
    java.sql.SQLException: Invalid column name: get_column_index
    at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:427)
    at oracle.jdbc.driver.OracleStatement.get_column_index(OracleStatement.java, Compiled Code)
    at oracle.jdbc.driver.OracleResultSet.findColumn(OracleResultSet.java:680)
    at person.PersonMgr.getForEdit(PersonMgr.java:114)
    at person.PersonMgr.getForView(PersonMgr.java:168)
    at person.PersonMgr.getPersonForView(PersonMgr.java:164)
    at nwsession.NWSession.login(NWSession.java:224)
    at jsp.dologin._jspService(dologin.java:241)
    at com.livesoftware.jsp.HttpJSPServlet.service(HttpJSPServlet.java:31)
    at com.livesoftware.jsp.JSPServlet.service(JSPServlet.java:129)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:840)
    at com.livesoftware.jrun.JRun.runServlet(JRun.java, Compiled Code)
    at com.livesoftware.jrun.JRunGeneric.handleConnection(JRunGeneric.java:116)
    at com.livesoftware.jrun.service.proxy.JRunProxyServiceHandler.handleRequest(JRunProxyServiceHandler.java, Compiled Code)
    at com.livesoftware.jrun.service.ThreadConfigHandler.run(ThreadConfigHandler.java, Compiled Code)

    Your reference to NS.REQDATE is too deep. Oracle will only allow you to reference a column from the main query one level deep.
    I think you can just change that query into this:
    (Select AVG(((cpath.REQUESTDATETIME)- NS.REQDATE)*1440) AvgTime
    FROM usersessiondetails cpath
    Where cpath.Userkey=(Select Userkey from ods_user where userid=NS.UserId and namespace=NS.Namespace)
       and cpath.acctnum=aCCTNUM
       and cpath.transactionname IN (AUTH_LOGOFF' )
       and cpath.REQUESTDATETIME = NS.REQDATE )You do not need the extra query level to do the AVG.

  • How to filter parent & child rows from tables while export usingData export

    Hi,
    I have a requirement of export schema. Assume there is a account details table and account transactions table under schema.They have parent child relation exist. if i filter accounts from account details the corresponding transactions in account transactions table should be filterd.How to achieve this?
    Regards,
    Venkat Vadlamudi
    Mobile:9850499800

    Not sure if this is a SQL and PL/SQL question or whether it's an Oracle Apps type question or a Database General.
    Whatever, you've posted in the wrong forum (http://forums.oracle.com/forums/ann.jspa?annID=599)
    You should post in a more appropriate forum e.g.
    PL/SQL
    General Database Discussions
    etc.
    locking this thread

  • The result set that contain 10 rows always

    Hi all,
    I'm wondering if there is some way to produce the result set of a query in 10 rows always, in other word i run a query and i want that the result set in 10 row even if the query dosn't return any row.
    I need that row as a placeholder.
    thanks
    Francesco

    Happened to be GUI developer and try to take advantage of SQL,
    select * from (select rownum rn, e.* from emp e where rownum<11 and 1=2) e
    right join (select rownum rn from dual connect by rownum<11) t
    on t.rn=e.rn
    RN 
    EMPNO ENAME 
    JOB         
    MGR HIREDATE    
    SAL  
    COMM
    DEPTNO    
    RN
    5
    8
    3
    1
    2
    10
    6
    7
    4
    9
    10 rows selected.
    select * from (select rownum rn, e.* from emp e where rownum<11) e
    right join (select rownum rn from dual connect by rownum<11) t
    on t.rn=e.rn
    RN 
    EMPNO ENAME 
    JOB         
    MGR HIREDATE    
    SAL  
    COMM
    DEPTNO    
    RN
    1  
    7369 SMITH 
    CLERK      
    7902 17-DEC-80   
    800               
    20     
    1
    2  
    7499 ALLEN 
    SALESMAN   
    7698 20-FEB-81  
    1600   
    300    
    30     
    2
    3  
    7521 WARD  
    SALESMAN   
    7698 22-FEB-81  
    1250   
    500    
    30     
    3
    4  
    7566 JONES 
    MANAGER    
    7839 02-APR-81  
    2975               
    20     
    4
    5  
    7654 MARTIN
    SALESMAN   
    7698 28-SEP-81  
    1250  
    1400    
    30     
    5
    6  
    7698 BLAKE 
    MANAGER    
    7839 01-MAY-81  
    2850               
    30     
    6
    7  
    7782 CLARK 
    MANAGER    
    7839 09-JUN-81  
    2450     
    0    
    10     
    7
    8  
    7788 SCOTT 
    ANALYST    
    7566 19-APR-87  
    3000               
    20     
    8
    9  
    7839 KING  
    PRESIDENT       
    17-NOV-81  
    5000     
    0    
    10     
    9
    10  
    7844 TURNER
    SALESMAN   
    7698 08-SEP-81  
    1500     
    0    
    30    
    10
    10 rows selected.

  • SQL query with parameter returns empty result set, please help !!!

    Hi there,
    When I use the following query :
    <sql:query var="beroepsthemas" >
    select *
    from beroepsthemas
    where beroepsthemaid = ?
    <sql:param value="12"/>
    </sql:query>
    When I want to browse the result set with :
    <c:forEach items="${beroepsthemas.rows}" var="rij">
    it shows no records. But it must return at least one.
    All my jsp pages with sql queries and parameters have the same problem.
    This is all on my test environment. I'm using Ubuntu 5.10, Netbeans5.0, JDK 1.5_06, application runs in Bundeled Tomcat 5.5.9, MySQL 4.1.12, mysql-connector3.1.6
    When the same code is run on the live environment, it works just fine.
    The difference is :
    Mysql 4.1.10a, tomcat5.5.9, mysql-connector3.1.6
    What can there be wrong !!

    When the same code is run on the live environment, it
    works just fine.
    The difference is :
    Mysql 4.1.10a, tomcat5.5.9, mysql-connector3.1.6
    I didn't catch this. I think you may need to update the database driver.

  • Returning a result set/record from a dynamic query

    There seems to be plenty of examples for using Native Dynamic Sql to formulate and execute a dynamic query, however there are no examples of returning a result set or records which contain the rows of data that are retrieved by executing the query. Could someone give us an example?

    Welcome to the Oracle forum....
    CREATE OR REPLACE PACKAGE curspkg_join AS
    TYPE t_cursor IS REF CURSOR ;
    Procedure open_join_cursor1 (n_EMPNO IN NUMBER, io_cursor IN OUT t_cursor);
    END curspkg_join;
    Create the following Oracle package body on the Oracle server:
    CREATE OR REPLACE PACKAGE BODY curspkg_join AS
    Procedure open_join_cursor1 (n_EMPNO IN NUMBER, io_cursor IN OUT t_cursor)
    IS
    v_cursor t_cursor;
    BEGIN
    IF n_EMPNO <> 0
    THEN
    OPEN v_cursor FOR
    SELECT EMP.EMPNO, EMP.ENAME, DEPT.DEPTNO, DEPT.DNAME
    FROM EMP, DEPT
    WHERE EMP.DEPTNO = DEPT.DEPTNO
    AND EMP.EMPNO = n_EMPNO;
    ELSE
    OPEN v_cursor FOR
    SELECT EMP.EMPNO, EMP.ENAME, DEPT.DEPTNO, DEPT.DNAME
    FROM EMP, DEPT
    WHERE EMP.DEPTNO = DEPT.DEPTNO;
    END IF;
    io_cursor := v_cursor;
    END open_join_cursor1;
    END curspkg_join;
    Dim Oraclecon As New OracleConnection("Password=pwd;" & _
    "User ID=uid;Data Source=MyOracle;")
    Oraclecon.Open()
    Dim myCMD As New OracleCommand()
    myCMD.Connection = Oraclecon
    myCMD.CommandText = "curspkg_join.open_join_cursor1"
    myCMD.CommandType = CommandType.StoredProcedure
    myCMD.Parameters.Add(New OracleParameter("io_cursor", OracleType.Cursor)).Direction = ParameterDirection.Output
    myCMD.Parameters.Add("n_Empno", OracleType.Number, 4).Value = 123
    Dim myReader As OracleDataReader
    Try
    myCMD.ExecuteNonQuery()
    Catch myex As Exception
    MsgBox(myex.Message)
    End Try
    myReader = myCMD.Parameters("io_cursor").Value
    Dim x, count As Integer
    count = 0
    Do While myReader.Read()
    For x = 0 To myReader.FieldCount - 1
    Console.Write(myReader(x) & " ")
    Next
    Console.WriteLine()
    count += 1
    Loop
    MsgBox(count & " Rows Returned.")
    myReader.Close()
    Oraclecon.Close()
    The above code is working in one of our application; which is using ref cursor as result set and get from procedure. I hope you can found more code by google and/or search in this forum as well; if above code is not useful to you.
    HTH
    Girish Sharma

  • Getting every odd-numbered row from result set

    select *
    from mytable
    where MOD(rownum,2) = 1;
    Why does this not give me every odd-numbered row from result set? It returns just 1 row....
    Thank u

    When you say MOD(ROWNUM,2)=1 it will list only the first row with rowid which is devisible by 2 and gives a reminder 1.
    Just tweak your query with a GROUP BY:
    SQL> select rownum from your_table group by rownum having mod(rownum,2) =1;
        ROWNUM
             1
             3
             5
             7
             9
            11
            13
            15
            17
            19
            21
        ROWNUM
            23
            25
            27
            29
            31
            33
            35
            37
            39
            41
            43
    etc...
    [pre]
    Jithendra                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Parent-- Child result set required

    Hi Friends,
    I have below table
    TableA
    ParentColumn
    ChildColumn
    1
    abc
    1
    efg
    1
    ijk
    1
    lmn
    2
    aaa
    2
    bbb
    3
    xxx
    3
    ggg
    and I am looking for below result set.
    SomeColumnName
    1
    abc
    efg
    ijk
    lmn
    2
    aaa
    bbb
    3
    xxx
    ggg
    Please help me achieve this goal.
    THanks in advance
    Parixit

    Please post DDL, so that people do not have to guess what the keys, constraints, Declarative Referential Integrity, data types, etc. in your schema are. Learn how to follow ISO-11179 data element naming conventions and formatting rules. Temporal data should
    use ISO-8601 formats. Code should be in Standard SQL as much as possible and not local dialect. 
    This is minimal polite behavior on SQL forums. The useless picture you did post is a report and not a query!! The terms "child" and "parent" are from 1970's network DB and not RDBMS. You really have  no idea what you are doing at even the most basic level.
    Bad manners and total ignorance are not a substitute for actually learning 6o write SQL. Please come back when you have made an an effort on your own. 
    --CELKO-- Books in Celko Series for Morgan-Kaufmann Publishing: Analytics and OLAP in SQL / Data and Databases: Concepts in Practice Data / Measurements and Standards in SQL SQL for Smarties / SQL Programming Style / SQL Puzzles and Answers / Thinking
    in Sets / Trees and Hierarchies in SQL

  • Querying parent child sets

    Hi
    I have a cube with a dimension that has a value based hierarchy (id, description,parent)
    Is it possible to query the cube to get parent child sets ?
    I want the result set to look like
    Member Value Parent
    Parent_1 Measure_Value NULL
    Child_1.1 Measure_Value Parent_1
    Child_1.2 Measure_Value Parent_1
    Parent_2 Measure_Value NULL
    Child_2.1 Measure_Value Parent_2
    Child_2.2 Measure_Value Parent_2
    Also I am using a java front end,so I would like to do some pagination
    So I would like say 1st 50 sets , 2nd 50 sets and so on

    Cube Materialized Views are only created if you enable them and they are also only compatible with level based hierarchies. So MVs are not appropriate in your case.
    If you are generating your own SQL then you could consider a hybrid approach by combining OLAP DML and SQL to get the explicit list of members. First execute the following OLAP DML.
    LIMIT my_dim TO 'Parent_1' 'Parent_2'
    LIMIT my_dim ADD DESCENDANTS USING my_dim_parentrel
    SORT my_dim HIERARCHY my_dim_parentrelNow get the dimension members via either OLAP DML (e.g. REPORT command) or running SQL after the limit above. This gives you the explicit list of members that you can feed into a subsequent query.
    SELECT dim_key, ...
    FROM my_dim_view, cube_view
    WHERE
      <join condition>
      AND dim_key IN (...list from report command...}
      Make sure you set status back via ALLSTAT after getting the list or it will change results later.

  • Parent-Child Join on tables in Database Adapter

    Hi,
    We are doing a join on two tables(T1 and T2) in Database adapter for an Insert operation. There is no Reference Integrity between these two tables in Database, but join is done through bpel database adapter.
    Here is a scenario - when we try to insert a record(parent-child), into these two tables, If there is any data issue in any of the child record, Adapter inserts parent-record, also inserts few child-records it processed before it encountered this data issue and terminates.
    Issue here is , We want this to be transactional, it means, If any of the child record fails adapter should rollback the entire insert operation both from parent and child tables and exit with an error. Instead BPEL inserting half records into child table.
    Is there any parameter I need to set or am I missing anything? Someone please suggest.
    Thanks,
    Phani

    There are a few options I guess.
    1. Add the referential key constraint.
    2. Add custom logic in your BPEL project to compensate for any errors you encounter in your BPEL processes.

  • No Results after build a Parent-Child Hierarchy in OBIEE11G

    Hi All:
    Here's an problem. I followed the "http://sandybi.wordpress.com/2010/08/17/hierarchies-in-obiee-11g-part-1/" this article step by step to create a parent-child hierarchy in admin tool in OBIEE11G.
    But after check in and try to retrieve the hierarchy data in Answer. There's always displays "No Results."
    Is there any suggestions for this ? Really urgent and thanks for your help.
    Best regards
    Sunny

    @Aketi
    It is One way that We derive
    "sys_connect_by_path(RowIDToChar(RowID),'.') as
    RowIDList"
    Then
    We use Left Join Using
    "instr(RowIDList,RowIDToChar(RowID))".sorry, didn't catch what you mean.
    my site :-)
    http://oraclesqlpuzzle.hp.infoseek.co.jp/4-13.html
    pity, I don't know Japanese :(
    @Rob
    your query is good and simple :) probably it's the best alternative for the OP.
    But it won't work with not a plain hierarchy, e.g.:
          1
        2   3
          4
        5   6
    SQL> create table hierarchy (child,parent)
      2     as
      3     select 1, null from dual union all
      4     select 2, 1 from dual union all
      5     select 3, 1 from dual union all
      6     select 4, 3 from dual union all
      7     select 4, 2 from dual union all
      8     select 5, 4 from dual union all
      9     select 6, 4 from dual
    10  /
    Table created
    SQL>
    SQL> create table data (hierarchyid,value)
      2    as
      3    select 5, 10 from dual union all
      4    select 6, 25 from dual
      5  /
    Table created
    SQL>
    SQL> select h.child
      2           , sum(connect_by_root d.value)
      3        from hierarchy h
      4           , data d
      5       where h.child = d.hierarchyid (+)
      6     connect by prior h.parent = h.child
      7       group by h.child
      8       order by h.child
      9  /
         CHILD SUM(CONNECT_BY_ROOTD.VALUE)
             1                          70
             2                          35
             3                          35
             4                          70
             5                          10
             6                          25
    6 rows selected
    SQL>

  • How to achieve parent-child relationship using self join?

    my table structure is as follows
    parent child name
    -1     1     A1
    1     2     A2
    1     3     A3
    how to achieve the hierarchy model using self join. this can be easily achieved using "connect by prior". but how to achieve the same using self join?

    Hi,
    Yes, that's definitely possible. If you only need to display two levels from the hierarchy, a self-join is a good option. Make it an outer join if you need to show everyone on one level, regardless of whether they have a match on the other level or not; for example, if you want the output:
    child_name     child_id     parent_name     parent_id
    A1          1
    A2          2          A1          1
    A3          3          A1          1It's good that you posted some sample data. Now post the results you want from that data, and your query (what you think is the best attempt you've made so far). If you haven't tried anything so far, then look at some other simple self-join to get ideas.

  • Extract the hierarchy in Parent child format from HP

    Hello,
    I have a hierarchy within Accounts dimension which I need to move to the other application in the different environment. I donot want to move the whole dimension. I just need to move a hierarchy. Is there a way I can extract a hierarchy in Parent child format with properties and move the same in to the next one.
    Thanks in advance for your help.
    Cheers,
    XXX

    Hi,
    Below code assumes that you have 2 alias tables and assymetric hierarchy (having 4 to 6 levels) in accounts and all level 0 accounts are 6 digits. If you wish to remove the second alias table from the code simply remove references to it (i.e. aliastbl_id=50030). You can customize the extract top level member by modifying this section: (select object_id from hsp_object where object_name='Total Expenditure')
    This outputs the structure in a fixed columnar format having all levels in different columns.
    Code:
    select o1.object_name as LVL1, o1.object_name as LVL1_DESC_EN, al1.object_name as LVL1_DESC_AR,
    o2.object_name as LVL2, o2.object_name as LVL2_DESC_EN, al2.object_name as LVL2_DESC_AR,
    o3.object_name as LVL3, al3.object_name as LVL3_DESC_EN, alar3.object_name as LVL3_DESC_AR,
    o4.object_name as LVL4, al4.object_name as LVL4_DESC_EN, alar4.object_name as LVL4_DESC_AR,
    o5.object_name as LVL5, al5.object_name as LVL5_DESC_EN, alar5.object_name as LVL5_DESC_AR,
    o6.object_name as LVL6, al6.object_name as LVL6_DESC_EN, alar6.object_name as LVL6_DESC_AR
    from hsp_object o1
    left outer join (select * from hsp_alias where aliastbl_id=50030) a1 on o1.object_id=a1.MEMBER_ID left outer join hsp_object al1 on a1.alias_id=al1.object_id
    inner join hsp_object o2 on o1.object_id=o2.Parent_ID
    left outer join (select * from hsp_alias where aliastbl_id=50030) a2 on o2.object_id=a2.MEMBER_ID left outer join hsp_object al2 on a2.alias_id=al2.object_id
    inner join hsp_object o3 on o2.object_id=o3.Parent_ID
    left outer join (select * from hsp_alias where aliastbl_id=14) a3 on o3.object_id=a3.MEMBER_ID left outer join hsp_object al3 on a3.alias_id=al3.object_id
    left outer join (select * from hsp_alias where aliastbl_id=50030) ar3 on o3.object_id=ar3.MEMBER_ID left outer join hsp_object alar3 on ar3.alias_id=alar3.object_id
    inner join hsp_object o4 on o3.object_id=o4.Parent_ID
    left outer join (select * from hsp_alias where aliastbl_id=14) a4 on o4.object_id=a4.MEMBER_ID left outer join hsp_object al4 on a4.alias_id=al4.object_id
    left outer join (select * from hsp_alias where aliastbl_id=50030) ar4 on o4.object_id=ar4.MEMBER_ID left outer join hsp_object alar4 on ar4.alias_id=alar4.object_id
    inner join hsp_object o5 on o4.object_id=o5.Parent_ID
    left outer join (select * from hsp_alias where aliastbl_id=14) a5 on o5.object_id=a5.MEMBER_ID left outer join hsp_object al5 on a5.alias_id=al5.object_id
    left outer join (select * from hsp_alias where aliastbl_id=50030) ar5 on o5.object_id=ar5.MEMBER_ID left outer join hsp_object alar5 on ar5.alias_id=alar5.object_id
    inner join hsp_object o6 on o5.object_id=o6.Parent_ID
    left outer join (select * from hsp_alias where aliastbl_id=14) a6 on o6.object_id=a6.MEMBER_ID left outer join hsp_object al6 on a6.alias_id=al6.object_id
    left outer join (select * from hsp_alias where aliastbl_id=50030) ar6 on o6.object_id=ar6.MEMBER_ID left outer join hsp_object alar6 on ar6.alias_id=alar6.object_id
    where o1.object_id =(select object_id from hsp_object where object_name='Total Expenditure') and
    LENGTH(o6.object_name)=6
    union all
    select o1.object_name as LVL1, o1.object_name as LVL1_DESC_EN, al1.object_name as LVL1_DESC_AR,
    o2.object_name as LVL2, o2.object_name as LVL2_DESC_EN, al2.object_name as LVL2_DESC_AR,
    o3.object_name as LVL3, al3.object_name as LVL3_DESC_EN, alar3.object_name as LVL3_DESC_AR,
    o4.object_name as LVL4, al4.object_name as LVL4_DESC_EN, alar4.object_name as LVL4_DESC_AR,
    o5.object_name as LVL5, al5.object_name as LVL5_DESC_EN, alar5.object_name as LVL5_DESC_AR,
    o5.object_name as LVL6, al5.object_name as LVL6_DESC_EN, alar5.object_name as LVL6_DESC_AR
    from hsp_object o1
    left outer join (select * from hsp_alias where aliastbl_id=50030) a1 on o1.object_id=a1.MEMBER_ID left outer join hsp_object al1 on a1.alias_id=al1.object_id
    inner join hsp_object o2 on o1.object_id=o2.Parent_ID
    left outer join (select * from hsp_alias where aliastbl_id=50030) a2 on o2.object_id=a2.MEMBER_ID left outer join hsp_object al2 on a2.alias_id=al2.object_id
    inner join hsp_object o3 on o2.object_id=o3.Parent_ID
    left outer join (select * from hsp_alias where aliastbl_id=14) a3 on o3.object_id=a3.MEMBER_ID left outer join hsp_object al3 on a3.alias_id=al3.object_id
    left outer join (select * from hsp_alias where aliastbl_id=50030) ar3 on o3.object_id=ar3.MEMBER_ID left outer join hsp_object alar3 on ar3.alias_id=alar3.object_id
    inner join hsp_object o4 on o3.object_id=o4.Parent_ID
    left outer join (select * from hsp_alias where aliastbl_id=14) a4 on o4.object_id=a4.MEMBER_ID left outer join hsp_object al4 on a4.alias_id=al4.object_id
    left outer join (select * from hsp_alias where aliastbl_id=50030) ar4 on o4.object_id=ar4.MEMBER_ID left outer join hsp_object alar4 on ar4.alias_id=alar4.object_id
    inner join hsp_object o5 on o4.object_id=o5.Parent_ID
    left outer join (select * from hsp_alias where aliastbl_id=14) a5 on o5.object_id=a5.MEMBER_ID left outer join hsp_object al5 on a5.alias_id=al5.object_id
    left outer join (select * from hsp_alias where aliastbl_id=50030) ar5 on o5.object_id=ar5.MEMBER_ID left outer join hsp_object alar5 on ar5.alias_id=alar5.object_id
    where o1.object_id =(select object_id from hsp_object where object_name='Total Expenditure') and
    LENGTH(o5.object_name)=6
    union all
    select o1.object_name as LVL1, o1.object_name as LVL1_DESC_EN, al1.object_name as LVL1_DESC_AR,
    o2.object_name as LVL2, o2.object_name as LVL2_DESC_EN, al2.object_name as LVL2_DESC_AR,
    o3.object_name as LVL3, al3.object_name as LVL3_DESC_EN, alar3.object_name as LVL3_DESC_AR,
    o4.object_name as LVL4, al4.object_name as LVL4_DESC_EN, alar4.object_name as LVL4_DESC_AR,
    o4.object_name as LVL5, al4.object_name as LVL5_DESC_EN, alar4.object_name as LVL5_DESC_AR,
    o4.object_name as LVL6, al4.object_name as LVL6_DESC_EN, alar4.object_name as LVL6_DESC_AR
    from hsp_object o1
    left outer join (select * from hsp_alias where aliastbl_id=50030) a1 on o1.object_id=a1.MEMBER_ID left outer join hsp_object al1 on a1.alias_id=al1.object_id
    inner join hsp_object o2 on o1.object_id=o2.Parent_ID
    left outer join (select * from hsp_alias where aliastbl_id=50030) a2 on o2.object_id=a2.MEMBER_ID left outer join hsp_object al2 on a2.alias_id=al2.object_id
    inner join hsp_object o3 on o2.object_id=o3.Parent_ID
    left outer join (select * from hsp_alias where aliastbl_id=14) a3 on o3.object_id=a3.MEMBER_ID left outer join hsp_object al3 on a3.alias_id=al3.object_id
    left outer join (select * from hsp_alias where aliastbl_id=50030) ar3 on o3.object_id=ar3.MEMBER_ID left outer join hsp_object alar3 on ar3.alias_id=alar3.object_id
    inner join hsp_object o4 on o3.object_id=o4.Parent_ID
    left outer join (select * from hsp_alias where aliastbl_id=14) a4 on o4.object_id=a4.MEMBER_ID left outer join hsp_object al4 on a4.alias_id=al4.object_id
    left outer join (select * from hsp_alias where aliastbl_id=50030) ar4 on o4.object_id=ar4.MEMBER_ID left outer join hsp_object alar4 on ar4.alias_id=alar4.object_id
    where o1.object_id =(select object_id from hsp_object where object_name='Total Expenditure') and
    LENGTH(o4.object_name)=6
    Cheers,
    Alp

Maybe you are looking for

  • SQL query with parameter returns empty result set, please help !!!

    Hi there, When I use the following query : <sql:query var="beroepsthemas" > select * from beroepsthemas where beroepsthemaid = ? <sql:param value="12"/> </sql:query> When I want to browse the result set with : <c:forEach items="${beroepsthemas.rows}"

  • Object not found in lookup of SetDynamicConfiguration.

    Hi, We are doing File to Proxy Scenario, in the File adapter we used the SetDynamicConfiguration as the module with module Type as Local enterprise Bean and Paramaters as DynamicFeedeNS and _Simulate. during testing the  File adapter  shows log as "A

  • No sound from 32c120u

    I've had my Toshiba 32c120u tv for almost a year and its been working fine but recently it started to have sound problems. It started off as frequent sound distortions then the audio completely stopped working. I tried turning off and on the tv but i

  • Graphics issues in OS X Lion: shift after 10.7.2 update

    Hello. When OS X Lion 10.7.0 first time Installed on notebook I look on cool effects in finder and desktop. Ussualy it's a folder animations on file operations ... After update Clien or Combo from Apple update site 10.7.2 folder animations and other

  • Custom tab for page propertis- basic in sidekick

    Anybody knows how to customize the page properties tab in sidekick based on the template..