我需要在[selected YearMonth]的每一行中统计过去12个月的[SALES]。例如,如果选择了202110,我知道在202110和202011之间我有一笔销售,202110前面的[HAD SALES]应该显示1,但是,如果选择了202008,我回顾过去12个月,没有销售,我行应该显示0。
我需要像下面这样的语句,但在我的语句中没有where子句或参数,但我不知道如何把它放在一起。
SELECT
[SELECTED YEARMONTH],
(COUNT(SALES) FROM TABLE
WHERE [SELECTED YEARMONTH] BETWEEN [SELECTED PREVYEAR] AND [SELECTED YEARMONTH])
FROM
TABLE;
1条答案
按热度按时间agxfikkp1#
请尝试以下语句。
请注意,如果您的数据表中某个月份没有数据列,您应该在
OVER
子句中使用RANGE
,而不是ROWS
,如范例所示。ORDER BY
中使用的运算式会传回月份的连续枚举,这是RANGE
算法所需的。如果月份中没有间隔,则可以使用
ORDER BY YEARMONTH ROWS BETWEEN 11 PRECEDING AND CURRENT ROW
。| 年月|销售部|
| - -|- -|
| 小行星20211|十一|
| 小行星202|十二个|
| 小行星202|十二个|
| 小行星202|十一|
| 小行星202| 10个|
| 小行星202|九个|
| 小行星202|八个|
| 小行星202|七个|
| 小行星202|六个|
| 二○一二年|五个|
| 二○一一年|四个|
| 202010年|三个|
| 二○ ○九年|2个|
| 小行星2008|一个|