簡體   English   中英

如何在SAP HANA SQL中的過程中使用if else來找到數字總和的最大值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM