![](/img/trans.png)
[英]SAP HANA: how to catch SQL exception in procedure thrown by nested procedure?
[英]how to find maximum of sum of number using if else in procedure in sap hana sql
我想列出在日期方面銷售額最高的產品。 注意:在sap hana SQL中的過程中,如果使用if或case,則最高銷售額為max(sum(sales_amnt)
...。
我通過使用子句來做到這一點:
/ --------------------------正確的一個--------------------- ------------------------- /
WITH ranked AS
(
SELECT Dense_RAnk() OVER (ORDER BY SUM("SALES_AMNT"), "SALES_DATE", "PROD_NAME") as rank,
SUM("SALES_AMNT") AS Amount, "PROD_NAME",count(*), "SALES_DATE" FROM "KABIL"."DATE"
GROUP BY "SALES_DATE", "PROD_NAME"
)
SELECT "SALES_DATE", "PROD_NAME",Amount
FROM ranked
WHERE rank IN ( select MAX(rank) from ranked group by "SALES_DATE")
ORDER BY "SALES_DATE" DESC;
您不能將IF與SELECT語句一起使用。 請注意,您可以使用CASE語句語法實現大多數布爾邏輯
在select中,您將其應用於一列,並且邏輯將被執行多達結果集行計數的次數。 因此,糾正命令式邏輯不是很好的方法。 不過,如果您要這樣做,則可以創建一個計算視圖並使用中間的計算列來達到您的期望。
試試這個...我得到了答案...
select "SALES_DATE","PROD_NAME",sum("SALES_AMNT")
from "KABIL"."DATE"
group by "SALES_DATE","PROD_NAME"
having (SUM("SALES_AMNT"),"SALES_DATE") IN (select
MAX(SUM_SALES),"SALES_DATE"
from (select SUM("SALES_AMNT")
as
SUM_SALES,"SALES_DATE","PROD_NAME"
from "KABIL"."DATE"
group by "SALES_DATE","PROD_NAME"
)
group by "SALES_DATE");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.