Advertisement
jacky_di

final_foodcost

Mar 16th, 2022
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. with dish_prices as (
  2.  
  3. -- цены на блюда без замен
  4. SELECT DISTINCT
  5.   m."Date" + interval '3 hour' as menu_date
  6. , m."Meals.Containers._id" as dish_id
  7. , m."Meals.Containers.Price"/10000 as dish_price
  8. FROM menus m
  9. WHERE m."Date">='01-11-2021'::timestamp
  10.  
  11. UNION
  12.  
  13. --цены на блюда, на которые была осуществлена замена (без учета ритейла)
  14.  
  15. SELECT DISTINCT
  16.  packages."Date" as menu_date
  17. ,"public"."packages_menu"."Menu.Items.DishCode" as dish_id
  18. ,  menus."Meals.Containers.Price"/10000 as dish_price
  19. FROM packages_menu
  20. LEFT JOIN "public"."deliveryreports"
  21. ON "public"."packages_menu"."Menu.Items.CookingDeliveryReportId"="public"."deliveryreports"."_id"
  22. LEFT JOIN packages
  23. ON packages_menu."_id"=packages."_id"
  24. INNER JOIN menus ON "PackageGroups.FeedDate"= menus."Date" + '3 hour'
  25.                 AND "packages_menu"."Menu.Items.DishCode"=menus."Meals.Containers._id"
  26. WHERE packages."IsDeleted" is false
  27. and packages."Date">='01-01-2022'::timestamp
  28. and packages."IsReplaced" is true
  29. and packages."State"=3
  30. and NOT "public"."packages_menu"."Menu.Items.DishCode" LIKE "public"."packages_menu"."Menu.Items.OriginalDishCode"
  31. ), packs as (
  32.  
  33. select
  34. packages."_id"   as "pack_id"
  35. , packages."Date" AS pack_date
  36. , "packages"."DeliveryDate" AS delivery_date
  37. , "SubscriptionSettings.ProductCode" as product_code
  38. , COALESCE(packages_menu."Menu.Items.DishCode", menus."Meals.Containers._id") as "dish_id"
  39. -- , count(packages."_id") over(PARTITION BY packages."_id" ORDER BY "packages"."DeliveryDate" ROWS BETWEEN unbounded preceding AND unbounded following) as "dishes_in_packs"
  40. -- , count(COALESCE(packages_menu."Menu.Items.DishCode", menus."Meals.Containers._id")) over(PARTITION BY packages."_id" ORDER BY "packages"."DeliveryDate" ROWS BETWEEN unbounded preceding AND unbounded following) as "dishes"
  41. , "SubscriptionSettings.Count" as "packs_count"
  42. , case when packages_menu."Menu.Items.DishCode" != packages_menu."Menu.Items.OriginalDishCode" then true
  43.        else false
  44.        end as "replaced"  
  45. , case when packages_menu."Menu.Items.DishCode" != packages_menu."Menu.Items.OriginalDishCode" then "packages"."DeliveryReportGuid"
  46.        else null
  47.        end as "delivery_report_id"        
  48. from packages
  49. left join packages_menu on (packages_menu."_id" = packages."_id"
  50.                         and packages."IsReplaced" is true
  51.                         )                    
  52. left join menus ON (packages."Date"= menus."Date" + '3 hour'
  53.                 aND packages."SubscriptionSettings.ProductCode" = menus."Program"
  54.                 and packages."IsReplaced" is false
  55.                 and menus."IsDeleted" is false
  56.                 )
  57. where packages."State" = 3
  58. and packages."IsDeleted" is false
  59. and packages."Date" >= '2022-01-01'
  60. -- and packages."_id" = '00039e24-67cb-4dbd-b35c-634997077458'
  61. order by packages."_id"
  62.  
  63. )
  64.  
  65. select
  66. packs.*
  67. , dish_prices.*
  68.  
  69. from packs
  70. left join dish_prices on dish_prices."menu_date" = packs."pack_date"
  71.                       and dish_prices."dish_id" = packs."dish_id"
  72.  
  73. where dish_prices.dish_price is null
  74. Order by "pack_id"
  75.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement