SAP HANA查询帮助

2020-09-30 02:18发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我在编写HANA查询时遇到麻烦,该查询是按客户按月查看销售额和GP(粘贴在下面)。 问题是我希望查询仅考虑当年的销售额,但是当我有以下查询时-WHERE YEAR(T0。" DocDate")= YEAR(CURRENT_DATE),似乎将结果限制为仅客户 今年已过帐发票或贷项的订单,而我需要完整的客户列表,因为我需要查看销售额或GP等于零的位置。

我认为尝试用此行添加年份可能会有所帮助-

SUM(CASE(MONTH(T0。" DocDate"))当'1'然后T1。" LineTotal" END)为" Jan Sales"时,

-但我不知道该如何获取月份和年份,即2017年1月。

如果有人能够帮助或给我任何指示,那将是很好的。

谢谢

阿里

选择T0。" CardCode",T0。" CardName",T2。" U_BTotal",

 SUM(CASE(MONTH(T0。" DocDate"))当'1'然后T1。" LineTotal" END)为" Jan Sales"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'2'然后T1。" LineTotal" END)为" Feb Sales",
 SUM(CASE(MONTH(T0。" DocDate"))当'3'然后T1。" LineTotal" END)为" Mar Sales"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'4'然后T1。" LineTotal" END)为" Apr Sales"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'5'THEN T1。" LineTotal" END)为" May Sales"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'6'然后T1。" LineTotal" END)为" Jun Sales",
 SUM(CASE(MONTH(T0。" DocDate"))当'7'THEN T1。" LineTotal" END)为" Jul Sales"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'8'THEN T1。" LineTotal" END)为" Aug Sales"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'9'THEN T1。" LineTotal" END)为" Sep Sales"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'10'然后T1。" LineTotal" END)为"十月销售额"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'11'THEN T1。" LineTotal" END)为" Nov Sales"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'12'然后T1。" LineTotal" END)为" Dec Sales",

 SUM(CASE(MONTH(T0。" DocDate"))当'1'然后T1。" GrssProfit" END)为" Jan GP"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'2'然后T1。" GrssProfit" END)为" Feb GP",
 SUM(CASE(MONTH(T0。" DocDate"))当'3'然后T1。" GrssProfit" END)为" Mar GP",
 SUM(CASE(MONTH(T0。" DocDate"))当'4'然后T1。" GrssProfit" END)为" Apr GP"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'5'然后T1。" GrssProfit" END)为" May GP",
 SUM(CASE(MONTH(T0。" DocDate"))当'6'然后T1。" GrssProfit" END)为" Jun GP"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'7'然后T1。" GrssProfit" END)为" Jul GP"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'8'然后T1。" GrssProfit" END)为" Aug GP"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'9'然后T1。" GrssProfit" END)为" Sep GP"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'10'然后T1。" GrssProfit" END)为" Oct GP"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'11'然后T1。" GrssProfit" END)为" Nov GP",
 SUM(CASE(MONTH(T0。" DocDate"))当'12'然后T1。" GrssProfit" END)为" Dec GP"时,

 从OINV T0内连接INV1 T1到T0。" DocEntry" = T1。" DocEntry"
 左联接OCRD T2接通T0。" CardCode" = T2。" CardCode"
 T2上的内部联接OSLP T3。" SlpCode" = T3。" SlpCode"

 在T0。" CANCELED" ='N'AND T1。" LineType" ='R'AND T1。" TaxOnly" ='N'AND T1。" Quantity"> = 0 AND YEAR(T0。" DocDate")= YEAR  (当前日期)

 GROUP BY T0。" CardCode",T0。" CardName",T2。" U_BTotal"

 全联盟

 选择T0。" CardCode",T0。" CardName",T2。" U_BTotal",

 SUM(CASE(MONTH(T0。" DocDate"))当'1'THEN(T1。" LineTotal" *-1)END)为" Jan Sales"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'2'THEN(T1。" LineTotal" *-1)END)为" Feb Sales"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'3'THEN(T1。" LineTotal" *-1)END)为" Mar Sales"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'4'THEN(T1。" LineTotal" *-1)END)为" Apr Sales"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'5'THEN(T1。" LineTotal" *-1)END)为" May Sales"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'6'THEN(T1。" LineTotal" *-1)END)为" Jun Sales"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'7'THEN(T1。" LineTotal" *-1)END)为" Jul Sales"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'8'THEN(T1。" LineTotal" *-1)END)为" Aug Sales"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'9'THEN(T1。" LineTotal" *-1)END)为" Sep Sales"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'10'THEN(T1。" LineTotal" *-1)END)为" Oct Sales"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'11'THEN(T1。" LineTotal" *-1)END)为" Nov Sales"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'12'THEN(T1。" LineTotal" *-1)END)为" Dec Sales"时,

 SUM(CASE(MONTH(T0。" DocDate"))当'1'THEN(T1。" GrssProfit" *-1)END)为" Jan GP"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'2'然后(T1。" GrssProfit" *-1)END)为" Feb GP"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'3'THEN(T1。" GrssProfit" *-1)END)为" Mar GP"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'4'THEN(T1。" GrssProfit" *-1)END)为" Apr GP"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'5'THEN(T1。" GrssProfit" *-1)END)为" May GP"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'6'THEN(T1。" GrssProfit" *-1)END)为" Jun GP"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'7'然后(T1。" GrssProfit" *-1)END)为" Jul GP"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'8'然后(T1。" GrssProfit" *-1)END)为" Aug GP"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'9'THEN(T1。" GrssProfit" *-1)END)为" Sep GP"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'10'然后(T1。" GrssProfit" *-1)END)为" Oct GP"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'11'THEN(T1。" GrssProfit" *-1)END)为" Nov GP"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'12'然后(T1。" GrssProfit" *-1)END)为" Dec GP"时,

 从ORIN T0内连接RIN1 T1到T0。" DocEntry" = T1。" DocEntry"
 左联接OCRD T2接通T0。" CardCode" = T2。" CardCode"
 T2上的内部联接OSLP T3。" SlpCode" = T3。" SlpCode"

 在T0。" CANCELED" ='N'AND T1。" LineType" ='R'AND T1。" TaxOnly" ='N'AND T1。" Quantity"> = 0 AND YEAR(T0。" DocDate")= YEAR  (当前日期)

 GROUP BY T0。" CardCode",T0。" CardName",T2。" U_BTotal"

 ORDER BY T0。" CardCode" 

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我在编写HANA查询时遇到麻烦,该查询是按客户按月查看销售额和GP(粘贴在下面)。 问题是我希望查询仅考虑当年的销售额,但是当我有以下查询时-WHERE YEAR(T0。" DocDate")= YEAR(CURRENT_DATE),似乎将结果限制为仅客户 今年已过帐发票或贷项的订单,而我需要完整的客户列表,因为我需要查看销售额或GP等于零的位置。

我认为尝试用此行添加年份可能会有所帮助-

SUM(CASE(MONTH(T0。" DocDate"))当'1'然后T1。" LineTotal" END)为" Jan Sales"时,

-但我不知道该如何获取月份和年份,即2017年1月。

如果有人能够帮助或给我任何指示,那将是很好的。

谢谢

阿里

选择T0。" CardCode",T0。" CardName",T2。" U_BTotal",

 SUM(CASE(MONTH(T0。" DocDate"))当'1'然后T1。" LineTotal" END)为" Jan Sales"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'2'然后T1。" LineTotal" END)为" Feb Sales",
 SUM(CASE(MONTH(T0。" DocDate"))当'3'然后T1。" LineTotal" END)为" Mar Sales"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'4'然后T1。" LineTotal" END)为" Apr Sales"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'5'THEN T1。" LineTotal" END)为" May Sales"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'6'然后T1。" LineTotal" END)为" Jun Sales",
 SUM(CASE(MONTH(T0。" DocDate"))当'7'THEN T1。" LineTotal" END)为" Jul Sales"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'8'THEN T1。" LineTotal" END)为" Aug Sales"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'9'THEN T1。" LineTotal" END)为" Sep Sales"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'10'然后T1。" LineTotal" END)为"十月销售额"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'11'THEN T1。" LineTotal" END)为" Nov Sales"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'12'然后T1。" LineTotal" END)为" Dec Sales",

 SUM(CASE(MONTH(T0。" DocDate"))当'1'然后T1。" GrssProfit" END)为" Jan GP"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'2'然后T1。" GrssProfit" END)为" Feb GP",
 SUM(CASE(MONTH(T0。" DocDate"))当'3'然后T1。" GrssProfit" END)为" Mar GP",
 SUM(CASE(MONTH(T0。" DocDate"))当'4'然后T1。" GrssProfit" END)为" Apr GP"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'5'然后T1。" GrssProfit" END)为" May GP",
 SUM(CASE(MONTH(T0。" DocDate"))当'6'然后T1。" GrssProfit" END)为" Jun GP"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'7'然后T1。" GrssProfit" END)为" Jul GP"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'8'然后T1。" GrssProfit" END)为" Aug GP"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'9'然后T1。" GrssProfit" END)为" Sep GP"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'10'然后T1。" GrssProfit" END)为" Oct GP"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'11'然后T1。" GrssProfit" END)为" Nov GP",
 SUM(CASE(MONTH(T0。" DocDate"))当'12'然后T1。" GrssProfit" END)为" Dec GP"时,

 从OINV T0内连接INV1 T1到T0。" DocEntry" = T1。" DocEntry"
 左联接OCRD T2接通T0。" CardCode" = T2。" CardCode"
 T2上的内部联接OSLP T3。" SlpCode" = T3。" SlpCode"

 在T0。" CANCELED" ='N'AND T1。" LineType" ='R'AND T1。" TaxOnly" ='N'AND T1。" Quantity"> = 0 AND YEAR(T0。" DocDate")= YEAR  (当前日期)

 GROUP BY T0。" CardCode",T0。" CardName",T2。" U_BTotal"

 全联盟

 选择T0。" CardCode",T0。" CardName",T2。" U_BTotal",

 SUM(CASE(MONTH(T0。" DocDate"))当'1'THEN(T1。" LineTotal" *-1)END)为" Jan Sales"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'2'THEN(T1。" LineTotal" *-1)END)为" Feb Sales"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'3'THEN(T1。" LineTotal" *-1)END)为" Mar Sales"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'4'THEN(T1。" LineTotal" *-1)END)为" Apr Sales"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'5'THEN(T1。" LineTotal" *-1)END)为" May Sales"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'6'THEN(T1。" LineTotal" *-1)END)为" Jun Sales"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'7'THEN(T1。" LineTotal" *-1)END)为" Jul Sales"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'8'THEN(T1。" LineTotal" *-1)END)为" Aug Sales"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'9'THEN(T1。" LineTotal" *-1)END)为" Sep Sales"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'10'THEN(T1。" LineTotal" *-1)END)为" Oct Sales"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'11'THEN(T1。" LineTotal" *-1)END)为" Nov Sales"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'12'THEN(T1。" LineTotal" *-1)END)为" Dec Sales"时,

 SUM(CASE(MONTH(T0。" DocDate"))当'1'THEN(T1。" GrssProfit" *-1)END)为" Jan GP"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'2'然后(T1。" GrssProfit" *-1)END)为" Feb GP"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'3'THEN(T1。" GrssProfit" *-1)END)为" Mar GP"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'4'THEN(T1。" GrssProfit" *-1)END)为" Apr GP"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'5'THEN(T1。" GrssProfit" *-1)END)为" May GP"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'6'THEN(T1。" GrssProfit" *-1)END)为" Jun GP"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'7'然后(T1。" GrssProfit" *-1)END)为" Jul GP"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'8'然后(T1。" GrssProfit" *-1)END)为" Aug GP"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'9'THEN(T1。" GrssProfit" *-1)END)为" Sep GP"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'10'然后(T1。" GrssProfit" *-1)END)为" Oct GP"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'11'THEN(T1。" GrssProfit" *-1)END)为" Nov GP"时,
 SUM(CASE(MONTH(T0。" DocDate"))当'12'然后(T1。" GrssProfit" *-1)END)为" Dec GP"时,

 从ORIN T0内连接RIN1 T1到T0。" DocEntry" = T1。" DocEntry"
 左联接OCRD T2接通T0。" CardCode" = T2。" CardCode"
 T2上的内部联接OSLP T3。" SlpCode" = T3。" SlpCode"

 在T0。" CANCELED" ='N'AND T1。" LineType" ='R'AND T1。" TaxOnly" ='N'AND T1。" Quantity"> = 0 AND YEAR(T0。" DocDate")= YEAR  (当前日期)

 GROUP BY T0。" CardCode",T0。" CardName",T2。" U_BTotal"

 ORDER BY T0。" CardCode" 
付费偷看设置
发送
2条回答
Baoming ROSE
1楼 · 2020-09-30 02:50.采纳回答

你好,阿里。

查看是否在表" _SYS_BI"。" M_TIME_DIMENSION"中的HANA实例中生成了时间维度数据。 如果不可以,请生成有关日期粒度的时间维度数据。 完成此操作后,您可以按日期加入该表,以获取诸如CALMONTH之类的列。 这样可以解决您的问题。

四川大学会员
2楼-- · 2020-09-30 02:29

感谢Mrityunjay。 我会检查出来的。

一周热门 更多>