我在table
上有SAP HANA
EFF:
OBJECT;PN;MANUFACTURER;MONTH;QTY
OBJ1;PN1;MAN1;201601;1
OBJ1;PN1;MAN1;201602;1
OBJ1;PN1;MAN1;201603;2
OBJ1;PN1;MAN1;201604;1
OBJ1;PN1;MAN1;201605;1
OBJ1;PN1;MAN1;201606;1
我希望获得SQL statement
table
OBJECT / PN / MANUF / QTY
的汇总视图,但按日期排序。这就是我想要的。
OBJECT;PN;MANUFACTURER;DATE_FROM;DATE_TO;QTY OBJ1;PN1;MAN1;201601;201602;1 (from 01-2016 to 02-2016, OBJ1 contained 1 PN1) OBJ1;PN1;MAN1;201603;201603;2 (from 03-2016 to 03-2016, OBJ1 contained 2 PN1) OBJ1;PN1;MAN1;201604;201606;1 (from 04-2016 to 06-2016, OBJ1 contained 1 PN1)
我已经测试了很多解决方案,但没有什么效果好......我总是得到:
这还不够......
我一直期待Window Functions
SAP HANA
FIRST_VALUE (partition by...)
和LAST_VALUE
stored procedure
,但它无法正常运作......
请问您有什么想法吗?
注意:我已经实现了一个cursor
fields
来实现它,它可以工作(几个小时),但我需要更快的东西。因为它涉及数十亿行。
答案 0 :(得分:0)
我认为你想得到的是如下
select
"OBJECT",
PN,
MANUFACTURER,
Month as fromMonth,
Lead(Month,1) over (partition by "OBJECT", PN, MANUFACTURER Order by Month) as toMonth,
sum(Qty) as qty
from EFF
group by
"OBJECT",
PN,
MANUFACTURER,
Month
您的样本数据输出如下面的截图
正如你所提到的,我使用SQL Lead function来计算下个月 我使用了Sum()汇总函数的Group By子句,以Object,PN和Manufacturer
为基础,每月收集数量。我希望它有所帮助,