我從那裏我需要計算一些數值的總和,然後把每一筆最高值的表。 我有代碼是以下:如何從一個SUM()子查詢中的MAX()在SQL
SELECT q1.prod_code, q1.cust_code, MAX(q1.total_sum)
FROM (SELECT k2.prod_code, k2.cust_code, SUM(k2.price) AS total_sum FROM reservation AS k2 GROUP BY k2.prod_code, k2.cust_code) AS q1
GROUP BY q1.prod_code
從上面我幾乎得到正確的結果。 我得:
prod_code | cust_code | total_sum
1001 | 10002 | 75
1002 | 10005 | 209
1003 | 10005 | 350
1004 | 10002 | 650
但取而代之的是我得到:
prod_code | cust_code | total_sum
1001 | 10001 | 75
1002 | 10001 | 209
1003 | 10003 | 350
1004 | 10001 | 650
其實CUST_CODE是在子查詢中的每個單獨的prod_code所述第一值。
你有什麼想法可能是錯的?
我相信你的問題是與你的外''組'''。 'Mysql'允許這樣做,但大多數其他數據庫不會。它基本上返回一個隨機的'cust_code'。您需要回到相同的查詢才能獲得正確的查詢。 – sgeddes
這可能是,但如何加入與外部子查詢? – ToroLoco