【发布时间】:2018-12-14 01:14:48
【问题描述】:
我有一个包含 ItemID、Qty 和 OrderDate 的表
我只查询订单日期在下个月(当前月份 + 1)和之后 11 个月之间的结果。
我正在尝试编写一个查询,通过 ItemID 获取 QTY 的总和,以及每个 ItemID 存在的月数。
我可以得到如下所示的结果集:
ITEMID Qty TMonth TYear
01.0002 392.00 1 2019
01.0002 392.00 2 2019
01.0002 392.00 3 2019
01.0002 784.00 4 2019
01.0002 784.00 5 2019
01.0002 392.00 6 2019
01.0002 784.00 7 2019
01.0002 392.00 8 2019
01.0002 392.00 9 2019
我通过按 ITEMID、MONTH(OrderDate)、YEAR(OrderDate) 分组来获得此信息,它显示了每个月/年的总数。在这个例子中总共有 9 个月。但是,您会看到每个项目都重复此操作,并且其关联的月/年(如果存在订单)可能是 1 到 11。
我需要一个如下所示的结果集:
ITEMID Qty MnthCount
01.0002 4704.00 9
A0-B1002 3300.00 2
ZX-YT12 50.00 7
我认为必须有一些窗口功能或我可以使用的东西。有没有办法做到这一点,还是我需要求助于子选择或某种外部应用?
【问题讨论】:
-
底层数据是什么样的?你愿意分享你的查询吗?
-
嗯,它非常简单,ItemID、Qty 和 OrderDate 示例数据如下所示:AX09-1 5 3/15/2018 Z7-HJk 4 3/01/2018 等等
标签: sql sql-server tsql window-functions