Advertisement
Guest User

Untitled

a guest
Sep 26th, 2014
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --explain analyze
  2. SELECT * FROM (SELECT COALESCE(levelData.pci, collected.pci) AS pci,
  3. COALESCE(collected.unit,
  4. (SELECT(SELECT (SELECT textcat_all(DISTINCT CASE WHEN iu.unit = 1 THEN 'kg' ELSE 'Kus' END || ';') FROM t_item iu WHERE pe.ean = iu.ean AND iu.company_fk = (SELECT s.company_fk FROM t_store_info s WHERE s.id = '87')  LIMIT 1) FROM t_pn pe WHERE pe.product_custom_identificator = COALESCE(levelData.pci, collected.pci) AND pe.company_fk = (SELECT s.company_fk FROM t_store_info s WHERE s.id = '87') LIMIT 1)),
  5. '#NOUNIT') AS units,
  6. COALESCE(collected.ean, (SELECT textcat_all(pe.ean||'; ') FROM t_pn pe WHERE pe.product_custom_identificator = COALESCE(levelData.pci, collected.pci) AND pe.company_fk = (SELECT s.company_fk FROM t_store_info s WHERE s.id = '87'))) AS eans,
  7. COALESCE(collected.description, (SELECT (SELECT i.description FROM t_item i WHERE i.ean = pd.ean AND i.company_fk = (SELECT s.company_fk FROM t_store_info s WHERE s.id = '87') LIMIT 1)
  8. FROM t_pn pd
  9. WHERE pd.product_custom_identificator = COALESCE(levelData.pci, collected.pci) AND pd.company_fk = (SELECT s.company_fk FROM t_store_info s WHERE s.id = '87') LIMIT 1)) AS description,
  10. COALESCE(levelData.level_data_count, 0) AS level_data_count,
  11. COALESCE(collected.total, 0) AS collected_count,
  12. ROUND(CAST ((COALESCE(collected.total, 0) - COALESCE(levelData.level_data_count, 0)) AS numeric), 1) AS count_difference,
  13. ROUND(CAST (((COALESCE(collected.total, 0) - COALESCE(levelData.level_data_count, 0)) * (COALESCE(levelData.unit_price, 0.01))) AS numeric), 1) AS value_difference,
  14. COALESCE(levelData.unit_price, 0.01) AS unit_price,
  15. COALESCE(collected.hierarchy,
  16. (SELECT (SELECT hi.hierarchy_fk FROM t_item hi WHERE pe.ean = hi.ean AND hi.company_fk = (SELECT s.company_fk FROM t_store_info s WHERE s.id = '87')LIMIT 1) FROM t_pn pe WHERE pe.product_custom_identificator = COALESCE(levelData.pci, collected.pci) AND pe.company_fk = (SELECT s.company_fk FROM t_store_info s WHERE s.id = '87') LIMIT 1)) AS hierarchy,
  17. collected.data_source AS data_source,
  18. COALESCE(collected.location, '#neinventovane') AS location
  19. --, *
  20. FROM
  21. (SELECT(SELECT pn.product_custom_identificator FROM t_pn pn, t_weighting w4
  22. WHERE MAX(w.item_ean) = pn.ean AND pn.company_fk = (SELECT s.company_fk FROM t_store_info s WHERE s.id = '87') LIMIT 1) as pci,
  23. textcat_all(DISTINCT w.item_ean || '; ') AS ean,
  24. textcat_all(DISTINCT i.description || '; ') AS description,
  25. (SELECT CASE WHEN (TRUNC(SUM(w.item_count)) = ROUND(SUM(w.item_count), 4))
  26.                 THEN TRUNC(SUM(w.item_count))
  27.                 ELSE ROUND(SUM(w.item_count), 4)
  28.                 END) AS total,
  29. textcat_all(DISTINCT CASE WHEN i.unit = 1 THEN 'kg'
  30. ELSE 'Kus'
  31. END || ';') AS unit,
  32. textcat_all(DISTINCT (SELECT
  33. CASE WHEN (w.stat_count_entered IS NOT NULL AND w.stat_weight_start IS NULL)
  34. THEN CASE WHEN (w.box_ean IS NULL)
  35. THEN 'm'
  36. ELSE 'M'
  37. END
  38. ELSE ''
  39. END ||
  40. CASE WHEN (w.stat_item_count > 1 OR (w.stat_count_entered IS NULL AND w.stat_weight_start IS NULL))
  41. THEN CASE WHEN (w.box_ean IS NULL)
  42. THEN 's'
  43. ELSE 'S'
  44. END
  45. ELSE ''
  46. END ||
  47. CASE WHEN (w.stat_weight_start IS NOT NULL)
  48. THEN CASE WHEN (w.box_ean IS NULL)
  49. THEN 'w'
  50. ELSE 'W'
  51. END
  52. ELSE ''
  53. END
  54. )) AS data_source,
  55. max(i.hierarchy_fk) AS hierarchy,
  56. (SELECT textcat_all ('['||coord_x||','||coord_y||','||coord_z||']:' || pocet || ' (' || shelf || '/' || shelf_total || '); ')
  57. FROM
  58. (SELECT CASE WHEN (TRUNC(SUM(w3.item_count)) = ROUND(SUM(w3.item_count), 4))
  59.                 THEN TRUNC(SUM(w3.item_count))
  60.                 ELSE ROUND(SUM(w3.item_count), 4)
  61.                 END AS pocet,   coord_x, coord_y, coord_z, shelf, shelf_total
  62. FROM t_weighting w3
  63. WHERE w3.item_ean = ANY (array_agg(w.item_ean)) AND w3.stocktaking_id = w.stocktaking_id
  64. GROUP BY coord_x, coord_y, coord_z, shelf, shelf_total
  65. )f ) AS location
  66. FROM t_weighting w, t_item i
  67. WHERE w.item_ean = i.ean AND w.stocktaking_id = 'TeKarvinaKosmo07092014;87' AND
  68. i.company_fk = (SELECT s.company_fk FROM t_store_info s WHERE s.id = '87') AND
  69. w.user_id = (SELECT user_id
  70. FROM t_weighting wi
  71. WHERE wi.coord_x = w.coord_x AND wi.coord_y = w.coord_y AND wi.coord_z = w.coord_z AND wi.stocktaking_id = w.stocktaking_id
  72. ORDER BY stat_item_start DESC
  73. LIMIT 1)
  74. GROUP BY w.stocktaking_id,
  75. (SELECT pn.product_custom_identificator FROM t_pn pn
  76. WHERE i.ean = pn.ean AND pn.company_fk = (SELECT s.company_fk FROM t_store_info s WHERE s.id = '87') LIMIT 1)
  77. ORDER BY pci) collected
  78. FULL OUTER JOIN
  79. (SELECT cld.product_custom_identificator AS pci,
  80. SUM(count) AS level_data_count,
  81. MAX(unit_price) AS unit_price
  82. FROM t_currentlevel_data cld
  83. WHERE cld.batch_id = (SELECT cl.batch_id FROM t_currentlevel cl WHERE cl.stocktaking_id = 'TeKarvinaKosmo07092014;87')
  84. GROUP BY cld.product_custom_identificator) levelData
  85. ON (levelData.pci = collected.pci)) as diff
  86. WHERE NOT (level_data_count = 0 AND collected_count = 0);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement