簡體   English   中英

在匯總子查詢中缺少分組依據語句

[英]Missing a group by statement in an aggregate sub-query

我有一個查詢,隨着時間的推移,同一位客戶有多個銷售人員,因此我只想顯示該給定客戶的最新銷售人員。

我編寫了以下查詢,以顯示客戶和銷售人員的最新日期,但收到錯誤消息:“除非在HAVING子句或選擇列表中包含的子查詢中,否則聚合可能不會出現在WHERE子句中,並且正在匯總的列是外部參考。”

不知道group by語句在這里會去哪里,因為這就是原因,所以希望有人可以提供正確的語法幫助。

select CUST_NAME, SALESMAN_NAME, year(invoice_Date) 
from ns.SAR_COMBINED sc
where sc.invoice_date  >= (select max(sc.invoice_date) from 
ns.SAR_COMBINED)

謝謝

您還可以使用row_number()

   select * from ( 
    select CUST_NAME, SALESMAN_NAME,
     year(invoice_Date) ,
    row_number() over(partition by cust_name order by invoice_date desc ) rn
    from ns.SAR_COMBINED sc) t where t.rn=1

您需要一個相關的子查詢:

select CUST_NAME, SALESMAN_NAME, year(invoice_Date) 
from ns.SAR_COMBINED sc
where sc.invoice_date >= (select max(sc2.invoice_date)
                          from ns.SAR_COMBINED sc2
                          where sc2.cust_name = sc.cust_name
                         );

相關子句是子查詢中的where子句。 它將sc2中的客戶與外部查詢中的客戶匹配。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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