gpt4 book ai didi

mysql - 按部分划分的销售和交易总额,按过去 24 个月分组

转载 作者:行者123 更新时间:2023-11-29 21:49:30 24 4
gpt4 key购买 nike

SELECT det.partNum,
SUM(det.quantity) AS Demand1,
COUNT(det.partNum) AS Call1

FROM details det

JOIN invoice inv ON det.invoice_id = inv.id
WHERE inv.invoice_date
BETWEEN '2015-11-01 00:00:00'
AND '2015-11-31 23:59:59'

GROUP BY partNum

上述 SQL 返回当月所有零件编号、已售出总数(需求)以及零件涉及的交易总数(调用)。

我们的供应商想要的是每个零件的信息,而且还针对过去 24 个月的每个零件进行分组。他们请求的 csv 如下所示(如果仅查看最近 3 个月的数据):

Part# | Demand1 | Demand2 | Demand3 | Call1 | Call2 | Call3
123 | 0 | 2 | 0 | 0 | 1 | 0
345 | 6 | 3 | 4 | 1 | 2 | 3

Part# 123: 0 transactions this month (Call1) 0 quantity sold (Demand1)
1 transaction last month (Call2) 2 quantity sold (Demand2).
0 transactions two months ago (Call3) 0 quantity sold (Demand3).

Part# 345: 1 transaction this month (Call1) for qty sold of 6 (Demand1)
2 transactions last month (Call2) for qty sold of 3 (Demand2)
3 transactions two months ago (Call3) for qty sold of 4 (Demand3)

意识到他们希望将这一期限延长到过去 24 个月。 Demand1/Call1 始终为当前月份。

我使用 WHERE/BETWEEN 语句来显示日期的来源,并演示如何获得当月零件的准确报告。

我不知道该怎么做,就是填写 24 个月的需求和电话。这是供应商期望数据采用的格式。这不是我的选择。任何帮助使其按预期工作的帮助将不胜感激。

谢谢

编辑

我删除了 sql-server 标签。对于那个很抱歉。这只是 MySQL。

此外,我正在添加下面的回复...

研究 DATEDIFF、TIMESTAMPDIFF 甚至 PERIOD_DIFF。但实际上似乎没有一个能返回我需要的东西。需要做的是第一个需求列应该搜索当前月份第 1 天(含)到下个月第 1 天(不含)。下一个需求列应搜索当前月份 - 一个月第 1 天(含)到下个月 - 一个月第 1 天(不包括)。并且每个后续列都应该搜索相同的参数,每列减去一个额外的月份。我认为仅使用 DATEDIFF 无法精确地完成此任务。

我希望这是有道理的。

再次感谢您的帮助。

最佳答案

如果我正确理解你的问题,你可以这样做:

SELECT 
det.partNum,
SUM(case when inv.invoice_date >= dateadd(month, -3, @currMonth) and inv.invoice_date < dateadd(month, -2, @currMonth) then det.quantity else 0) AS Demand1,
SUM(case when inv.invoice_date >= dateadd(month, -2, @currMonth) and inv.invoice_date < dateadd(month, -1, @currMonth) then det.quantity else 0) AS Demand2,
...
FROM details det

JOIN invoice inv ON det.invoice_id = inv.id
WHERE
inv.invoice_date >= '2015-11-01 00:00:00' AND inv.invoice_date < '2015-12-01'

GROUP BY partNum

这使用具有当月开始日期的变量来使 SQL 更简单。我还更改了 where 子句,您应该真正使用 >= + < 与日期而不是在日期之间。

关于mysql - 按部分划分的销售和交易总额,按过去 24 个月分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33790439/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com