SELECT * FROM ( SELECT a.ACCOUNT_ID AS ACCOUNT_ID, a.ACCOUNT_ID - 23860000000000000 AS CANVAS_ID, a.ACCOUNT_NAME AS ACCOUNT_NAME, 0 AS DEPTH_OF_ACCOUNT, a.WORKFLOW_STATE, NULL PARENT_ACCOUNT, NULL PARENT_ACCOUNT_ID, NULL GRANDPARENT_ACCOUNT, NULL GRANDPARENT_ACCOUNT_ID, a.ACCOUNT_NAME ROOT_ACCOUNT, a.ACCOUNT_ID ROOT_ACCOUNT_ID, NULL SUBACCOUNT1, NULL SUBACCOUNT1_ID, NULL SUBACCOUNT2, NULL SUBACCOUNT2_ID, NULL SUBACCOUNT3, NULL SUBACCOUNT3_ID FROM BI_ACCOUNTS a WHERE a.ACCOUNT_ID = '23860000000000001' AND a.PARENT_ACCOUNT_ID IS NULL UNION ALL SELECT b.ACCOUNT_ID AS ACCOUNT_ID, b.ACCOUNT_ID - 23860000000000000 AS CANVAS_ID, b.ACCOUNT_NAME AS ACCOUNT_NAME, 1 AS DEPTH_OF_ACCOUNT, b.WORKFLOW_STATE, NULL AS PARENT_ACCOUNT, '23860000000000001' AS PARENT_ACCOUNT_ID, NULL GRANDPARENT_ACCOUNT, NULL GRANDPARENT_ACCOUNT_ID, NULL AS ROOT_ACCOUNT, '23860000000000001' AS ROOT_ACCOUNT_ID, b.ACCOUNT_NAME AS SUBACCOUNT1, b.ACCOUNT_ID SUBACCOUNT1_ID, NULL SUBACCOUNT2, NULL SUBACCOUNT2_ID, NULL SUBACCOUNT3, NULL SUBACCOUNT3_ID FROM BI_ACCOUNTS b WHERE b.ACCOUNT_ID <> '23860000000000001' AND b.PARENT_ACCOUNT_ID = '23860000000000001' UNION ALL SELECT DISTINCT c.ACCOUNT_ID AS ACCOUNT_ID, c.ACCOUNT_ID - 23860000000000000 AS CANVAS_ID, c.ACCOUNT_NAME AS ACCOUNT_NAME, c1.DEPTH AS DEPTH_OF_ACCOUNT, --2 c.WORKFLOW_STATE, NULL AS PARENT_ACCOUNT, c.ACCOUNT_ID AS PARENT_ACCOUNT_ID, NULL AS GRANDPARENT_ACCOUNT, '23860000000000001' AS GRANDPARENT_ACCOUNT_ID, NULL AS ROOT_ACCOUNT, '23860000000000001' AS ROOT_ACCOUNT_ID, NULL AS SUBACCOUNT1, c.PARENT_ACCOUNT_ID AS SUBACCOUNT1_ID, NULL AS SUBACCOUNT2, c.ACCOUNT_ID AS SUBACCOUNT2_ID, NULL AS SUBACCOUNT3, NULL AS SUBACCOUNT3_ID FROM BI_ACCOUNTS c, (SELECT DISTINCT ACCOUNT_ID, DEPTH FROM BI_USER_ACCOUNT_ASSOC) c1 WHERE c.ACCOUNT_ID = c1.ACCOUNT_ID and c1.DEPTH = 2 AND c.ACCOUNT_ID <> '23860000000000001' AND c.PARENT_ACCOUNT_ID <> '23860000000000001' UNION ALL SELECT d.ACCOUNT_ID AS ACCOUNT_ID, d.ACCOUNT_ID - 23860000000000000 AS CANVAS_ID, d.ACCOUNT_NAME AS ACCOUNT_NAME, d1.depth AS DEPTH_OF_ACCOUNT, --3 d.WORKFLOW_STATE, NULL PARENT_ACCOUNT, d.PARENT_ACCOUNT_ID, NULL as GRANDPARENT_ACCOUNT, NULL AS GRANDPARENT_ACCOUNT_ID, --unknown NULL As ROOT_ACCOUNT, '23860000000000001' AS ROOT_ACCOUNT_ID, NULL AS SUBACCOUNT1, NULL AS SUBACCOUNT1_ID, --unknown NULL AS SUBACCOUNT2, d.PARENT_ACCOUNT_ID AS SUBACCOUNT2_ID, NULL AS SUBACCOUNT3, d.ACCOUNT_ID AS SUBACCOUNT3_ID FROM BI_ACCOUNTS d, (SELECT DISTINCT ACCOUNT_ID, DEPTH FROM BI_USER_ACCOUNT_ASSOC) d1 WHERE d.ACCOUNT_ID = d1.ACCOUNT_ID and d1.DEPTH = 3 AND d.ACCOUNT_ID <> '23860000000000001' AND d.PARENT_ACCOUNT_ID <> '23860000000000001' UNION ALL SELECT e.ACCOUNT_ID AS ACCOUNT_ID, e.ACCOUNT_ID - 23860000000000000 AS CANVAS_ID, e.ACCOUNT_NAME AS ACCOUNT_NAME, e1.depth AS DEPTH_OF_ACCOUNT, --4 e.WORKFLOW_STATE, NULL AS PARENT_ACCOUNT, NULL AS PARENT_ACCOUNT_ID, --unknown NULL AS GRANDPARENT_ACCOUNT, NULL AS GRANDPARENT_ACCOUNT_ID, --unknown same as parent_id NULL As ROOT_ACCOUNT, '23860000000000001' AS ROOT_ACCOUNT_ID, NULL AS SUBACCOUNT1, NULL AS SUBACCOUNT1_ID, --unknown NULL AS SUBACCOUNT2, e.PARENT_ACCOUNT_ID AS SUBACCOUNT2_ID, NULL AS SUBACCOUNT3, NULL AS SUBACCOUNT3_ID --unknown FROM BI_ACCOUNTS e, (SELECT DISTINCT ACCOUNT_ID, DEPTH FROM BI_USER_ACCOUNT_ASSOC) e1 WHERE e.ACCOUNT_ID = e1.ACCOUNT_ID and e1.DEPTH = 4 ) WHERE (ACCOUNT_ID = '23860000000000001' AND PARENT_ACCOUNT_ID IS NULL) --depth in account = 0 OR (ACCOUNT_ID = '23860000000000062' AND PARENT_ACCOUNT_ID = '23860000000000001')--depth in account = 1 OR (ACCOUNT_ID = '23860000000000157' AND PARENT_ACCOUNT_ID = '23860000000000062')--depth in account = 2 OR (ACCOUNT_ID = '23860000000000203' AND PARENT_ACCOUNT_ID = '23860000000000157')--depth in account = 3 OR (ACCOUNT_ID = '23860000000000379' AND PARENT_ACCOUNT_ID = '23860000000000203')--depth in account = 4 ;