簡體   English   中英

我需要計算每個商品的日間銷售,MTD和年初至今的銷售

[英]I need to calculate day sale ,MTD and YTD sale for each item

我需要找到每個項目的MTD(本月至今)和YTD(本年迄今)銷售值。 而且,我可以篩選出需要查找銷售報告的全部數據。 根據該日期,應該可以找到MTD和YTD的銷售額。 它應該按條形碼對項目進行分組。 示例:如果輸入以下內容,則在過濾器中:8月21日,我應該找到當天的銷售額和MTD,YTD。

它可以與當前日期一起正常工作,但是如果我除當前日期以外的所有其他日期,則MTD和YTD會有差異

SELECT Barcode,
       SUM(CASE WHEN DATE = DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), -1) THEN sales_amount ELSE 0 END) AS day_1,
       SUM(CASE
                WHEN MONTH(date) = (MONTH(GETDATE() - 1))
                 AND YEAR(date) = YEAR(GETDATE() - 1) THENsales_amount
                ELSE 0
           END) AS month_t,
       SUM(CASE
                WHEN MONTH(date) = (MONTH(GETDATE() - 1))
                 AND YEAR(date) = YEAR(GETDATE() - 1) - 1 THEN GL_TOTALTTC
                ELSE 0
           END) AS lastyear_tm,
FROM sale
WHERE type = 'FFO'
  AND store = 'AE001A'
  AND (DATE = DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), -1)
    OR ((MONTH(date) = (MONTH(GETDATE() - 1))
     AND YEAR(date) = YEAR(GETDATE() - 1))
     OR (MONTH(date) = (MONTH(GETDATE() - 1))
     AND YEAR(date) = YEAR(GETDATE() - 1) - 1)))
GROUP BY barcode;

您可以使用條件聚合:

select bar_code,
       sum(case when date >= dateadd(day, -1, convert(date, getdate()) then sales_amount end) as yesterday,
       sum(case when month(date) = month(getdate()) and year(date) = year(getdate()) then sales_amount end) as mtd,
       sum(case when year(date) = year(getdate()) then sales_amount end) as ytd
from sale
where type = 'FFO' and store = 'AE001A' 
group by barcode;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM