首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我需要计算每件商品的当日销售额、MTD销售额和YTD销售额

问我需要计算每件商品的当日销售额、MTD销售额和YTD销售额
EN

Stack Overflow用户
提问于 2019-08-22 18:47:32
回答 1查看 452关注 0票数 0

我需要找到MTD (月初至今)和年初至今的销售价值为每个项目。而且,我对需要查找销售报告的整个数据进行了筛选。根据这个日期,它应该会找到MTD和YTD的销售额。它应该按条形码对项目进行分组。例如:在我的筛选器中,如果我输入:8月21日,我应该找到当天的销售和MTD,YTD。

它可以很好地处理当前日期,但如果我使用除当前日期之外的任何日期,则MTD和YTD会有所不同

代码语言:javascript
复制
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;
EN

回答 1

Stack Overflow用户

发布于 2019-08-22 18:51:29

您可以使用条件聚合:

代码语言:javascript
复制
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;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57607625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档