[英]group by with (-) operator in oracle query
我在下面有這樣的查詢。 有( -
)運算符= (AA.SOURCE_CREDIT - BB.SOURCE_DEBIT / 1.1)
。 我想按BR.AREA_ID分組。 只是BR.AREA_ID。 但這給了我錯誤:
ORA-00979:不是GROUP BY表達式
而且我必須在分組依據中添加AA.SOURCE_CREDIT和BB.SOURCE_DEBIT。 但是結果變得不是我想要的。 就是我想要的AREA_ID。
SELECT 'SALES EU' AS DESCRIPTION,
(AA.SOURCE_CREDIT - BB.SOURCE_DEBIT / 1.1) AS amount,
BR.AREA_ID
FROM VI_REPORT_BK_PENJUALAN BK
JOIN
MST_BRANCH BR
ON BR.BRANCH_ID = BK.BRANCH_ID
LEFT OUTER JOIN
(SELECT JH.JOURNAL_NO, JD.SOURCE_CREDIT
FROM TRX_JOURNAL_GL_HEADER JH
JOIN
TRX_JOURNAL_GL_DETAIL JD
ON JH.JOURNAL_NO = jd.JOURNAL_NO
JOIN
TRX_DELIVERY_CONFIRMATION DC
ON DC.DELIVERY_NO = JH.DOCUMENT_NO
WHERE JD.SOURCE_TYPE = '40100000') AA
ON (AA.JOURNAL_NO = BK.JOURNAL_NO)
LEFT OUTER JOIN
(SELECT JH.JOURNAL_NO, JD.SOURCE_DEBIT
FROM TRX_JOURNAL_GL_HEADER JH
JOIN
TRX_JOURNAL_GL_DETAIL JD
ON JH.JOURNAL_NO = jd.JOURNAL_NO
JOIN
TRX_DELIVERY_CONFIRMATION DC
ON DC.DELIVERY_NO = JH.DOCUMENT_NO
WHERE JD.SOURCE_TYPE = '40502002') BB
ON (BB.JOURNAL_NO = BK.JOURNAL_NO)
GROUP BY BR.AREA_ID, AA.SOURCE_CREDIT, BB.SOURCE_DEBIT
我已經嘗試在subs-query中進行分組。 但仍然無法正常工作。 我也在google中瀏覽,但沒有找到類似我的案例的案例。
如果行多於每一行,您希望查詢返回什么? 例:
AREA_ID | AA.SOURCE_CREDIT | BB.SOURCE_DEBIT
1 | 100 | 50
1 | 70 | 50
您確定每個區域ID只有一行,因此您可以使用SUM,MAX,AVG或其他任何內容。
SELECT 'SALES EU' AS DESCRIPTION,
(MAX(AA.SOURCE_CREDIT) - MAX(BB.SOURCE_DEBIT) / 1.1) AS amount,
BR.AREA_ID
...
如果可能會有更多結果,您應該決定哪種聚合功能最合適。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.