Advertisement
Guest User

nestedTbls for user680522

a guest
Nov 12th, 2020
338
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 4.70 KB | None | 0 0
  1. CREATE TABLE myTempTable AS
  2. SELECT DISTINCT CCSO, arrmap, relatedOrder
  3. FROM (
  4.  
  5.     /** layer 7 **/
  6.     /* all orders with these items */
  7.     SELECT DISTINCT outerlayer.CCSO, outerlayer.ARRMAP, siblingOrders.CCSO AS relatedOrder
  8.     FROM (
  9.         /* all items on related order */
  10.         SELECT DISTINCT innerlayer.CCSO, siblingItems.ARRMAP, siblingItems.CCSO AS relatedOrder
  11.         FROM (
  12.    
  13.             /** layer 6 **/
  14.             /* all orders with these items */
  15.             SELECT DISTINCT outerlayer.CCSO, outerlayer.ARRMAP, siblingOrders.CCSO AS relatedOrder
  16.             FROM (
  17.                 /* all items on related order */
  18.                 SELECT DISTINCT innerlayer.CCSO, siblingItems.ARRMAP, siblingItems.CCSO AS relatedOrder
  19.                 FROM (
  20.    
  21.                     /** layer 5 **/
  22.                     /* all orders with these items */
  23.                     SELECT DISTINCT outerlayer.CCSO, outerlayer.ARRMAP, siblingOrders.CCSO AS relatedOrder
  24.                     FROM (
  25.                         /* all items on related order */
  26.                         SELECT DISTINCT innerlayer.CCSO, siblingItems.ARRMAP, siblingItems.CCSO AS relatedOrder
  27.                         FROM (
  28.    
  29.                             /** layer 4 **/
  30.                             /* all orders with these items */
  31.                             SELECT DISTINCT outerlayer.CCSO, outerlayer.ARRMAP, siblingOrders.CCSO AS relatedOrder
  32.                             FROM (
  33.                                 /* all items on related order */
  34.                                 SELECT DISTINCT innerlayer.CCSO, siblingItems.ARRMAP, siblingItems.CCSO AS relatedOrder
  35.                                 FROM (
  36.  
  37.                                     /** layer 3 **/
  38.                                     /* all orders with these items */
  39.                                     SELECT DISTINCT outerlayer.CCSO, outerlayer.ARRMAP, siblingOrders.CCSO AS relatedOrder
  40.                                     FROM (
  41.                                         /* all items on related order */
  42.                                         SELECT DISTINCT innerlayer.CCSO, siblingItems.ARRMAP, siblingItems.CCSO AS relatedOrder
  43.                                         FROM (
  44.  
  45.                                             /** layer 2 **/
  46.                                             /* all orders with these items */
  47.                                             SELECT DISTINCT outerlayer.CCSO, outerlayer.ARRMAP, siblingOrders.CCSO AS relatedOrder
  48.                                             FROM (
  49.                                                 /* all items on related order */
  50.                                                 SELECT DISTINCT innerlayer.CCSO, siblingItems.ARRMAP, siblingItems.CCSO AS relatedOrder
  51.                                                 FROM (
  52.                                                         /** LAYER 1 **/
  53.  
  54.                                                         /* all orders containing same item */
  55.                                                         SELECT DISTINCT layer0.CCSO, layer0.ARRMAP, siblingOrders.CCSO AS relatedOrder
  56.                                                         FROM myTable layer0
  57.                                                         left join myTable siblingOrders  ON  (layer0.ARRMAP = siblingOrders.ARRMAP AND layer0.CCSO <> siblingOrders.CCSO)
  58.  
  59.                                                         UNION ALL
  60.  
  61.                                                         /* all items on same order */
  62.                                                         SELECT DISTINCT layer0.CCSO, siblingItems.ARRMAP, siblingItems.CCSO AS relatedOrder
  63.                                                         FROM myTable layer0
  64.                                                         inner join myTable siblingItems  ON  (layer0.ARRMAP <> siblingItems.ARRMAP AND layer0.CCSO = siblingItems.CCSO)
  65.  
  66.                                                         /** END LAYER 1 **/
  67.  
  68.                                                 ) innerlayer
  69.                                                 inner join myTable siblingItems  ON  (innerlayer.ARRMAP <> siblingItems.ARRMAP AND innerlayer.relatedOrder = siblingItems.CCSO)
  70.                                             ) outerlayer
  71.                                             left join myTable siblingOrders  ON  (outerlayer.ARRMAP = siblingOrders.ARRMAP AND outerlayer.CCSO <> siblingOrders.CCSO)
  72.                                             /** end layer 2 **/
  73.  
  74.                                         ) innerlayer
  75.                                         inner join myTable siblingItems  ON  (innerlayer.ARRMAP <> siblingItems.ARRMAP AND innerlayer.relatedOrder = siblingItems.CCSO)
  76.                                     ) outerlayer
  77.                                     left join myTable siblingOrders  ON  (outerlayer.ARRMAP = siblingOrders.ARRMAP AND outerlayer.CCSO <> siblingOrders.CCSO)
  78.                                     /** end layer 3 **/
  79.  
  80.                                 ) innerlayer
  81.                                 inner join myTable siblingItems  ON  (innerlayer.ARRMAP <> siblingItems.ARRMAP AND innerlayer.relatedOrder = siblingItems.CCSO)
  82.                             ) outerlayer
  83.                             left join myTable siblingOrders  ON  (outerlayer.ARRMAP = siblingOrders.ARRMAP AND outerlayer.CCSO <> siblingOrders.CCSO)
  84.                             /** end layer 4 **/
  85.  
  86.                         ) innerlayer
  87.                         inner join myTable siblingItems  ON  (innerlayer.ARRMAP <> siblingItems.ARRMAP AND innerlayer.relatedOrder = siblingItems.CCSO)
  88.                     ) outerlayer
  89.                     left join myTable siblingOrders  ON  (outerlayer.ARRMAP = siblingOrders.ARRMAP AND outerlayer.CCSO <> siblingOrders.CCSO)
  90.                     /** end layer 5 **/
  91.  
  92.                 ) innerlayer
  93.                 inner join myTable siblingItems  ON  (innerlayer.ARRMAP <> siblingItems.ARRMAP AND innerlayer.relatedOrder = siblingItems.CCSO)
  94.             ) outerlayer
  95.             left join myTable siblingOrders  ON  (outerlayer.ARRMAP = siblingOrders.ARRMAP AND outerlayer.CCSO <> siblingOrders.CCSO)
  96.             /** end layer 6 **/
  97.  
  98.         ) innerlayer
  99.         inner join myTable siblingItems  ON  (innerlayer.ARRMAP <> siblingItems.ARRMAP AND innerlayer.relatedOrder = siblingItems.CCSO)
  100.     ) outerlayer
  101.     left join myTable siblingOrders  ON  (outerlayer.ARRMAP = siblingOrders.ARRMAP AND outerlayer.CCSO <> siblingOrders.CCSO)
  102.     /** end layer 7 **/
  103.  
  104. ) nestedTbls
  105. ORDER BY 1, 2, 3;
  106. --244s
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement