Query
SQL Developer 中的聚合查詢
以下是我的查詢。我收到一條錯誤消息。當我刪除沒有總和的欄位時,它會起作用。我添加了數據的螢幕截圖。謝謝!
SELECT S.PRODUCT_ID, SUM(DISTINCT S.AWARD_AMT), SUM(DISTINCT S.EST_AMT), SUM(PMT.PMT_AMT), S.CREATE_DT, S.APPROVE_BY, S.EVALUATOR FROM SALES S INNER JOIN INVOICE INV ON S.PRODUCT_ID = INVS.PRODUCT_ID INNER JOIN PAYMENTS PMT ON INV.S.PRODUCT_ID = PMT.S.PRODUCT_ID AND INV.SEQ_NO = PMT.SEQ_NO WHERE CAST(CREATE_DT AS DATE)>='01-JAN-2014' AND INV.STATUS_CD = 'CREATE' GROUP BY S.PRODUCT_ID order by S.PRODUCT_ID
這是我的最後一個查詢。有效。我不得不刪除excel中的重複項
SELECT S.PRODUCT_ID, S.CREATE_DT, S.APPROVE_BY, S.EVALUATOR , SUM(DISTINCT S.AWARD_AMT) OVER (PARTITION BY S.PRODUCT_ID) AS S.AWARD_AMT, SUM(DISTINCT S.EST_AMT) OVER (PARTITION BY S.PRODUCT_ID) AS EST_COST_TOT, SUM(PMT.LINE_AM PMT.PMT_AMT T) OVER (PARTITION BY OM.O_OMO_NO) AS TOTAL_PMT FROM SALES S INNER JOIN INVOICE INV ON S.PRODUCT_ID = INVS.PRODUCT_ID INNER JOIN PAYMENTS PMT ON INV.S.PRODUCT_ID = PMT.S.PRODUCT_ID AND INV.SEQ_NO = PMT.SEQ_NO WHERE CAST(CREATE_DT AS DATE)>='01-JAN-2014' AND INV.STATUS_CD = 'CREATE' and SUBSTR(APPROVE_BY,1,3) IN ('PEP','SMI', 'MOP','3/4') GROUP BY S.PRODUCT_ID order by S.PRODUCT_ID
錯誤消息:ORA-00979:不是 GROUP BY 表達式 00979。00000 -“不是 GROUP BY 表達式” *原因:
*操作:行錯誤:1 列:91
假設您有下表 TAB(name,value)
name value a 2 a 3 a 2 b 4 b 5 b 5 c 6 c 6 c 6
以下查詢的結果集是什麼
查詢1:
select name, sum(value) from TAB group by name order by name
查詢2:
select name, sum(distinct value) from TAB group by name order by name
查詢 3:
select name, value from TAB group by name order by name
由於這被標記為
oracle-sql-developer
,我猜你在使用 SQL-Developer 來檢測和解決這個常見的語法問題時遇到了問題。SQL-Developer 在有問題的語法下方用黃色波浪線突出顯示潛在的語法問題。SQL-Developer 將對主要語法錯誤使用洋紅色波浪線。
你的整個
SELECT
條款是黃色的;您的語句相關的語法有問題SELECT
。如果您注意到,表格 (
invoice
,payments
) 也帶有黃色波浪線下劃線,那是因為我沒有您的表格。最後的洋紅色波浪線表示我缺少分號。
現在您有了視覺線索,您可以將游標懸停在語法上,SQL-Developer 將彈出一個視窗並提出編輯建議。
它並不總是正確的。但是,它應該告訴你你的語法有什麼問題。
如果需要,只需點擊彈出視窗中的藍色文本,SQL-Developer 就會為您進行更正。對於此範例,您必須更正更正。