【发布时间】:2019-08-23 15:15:37
【问题描述】:
我刚刚在 stackoverflow 和其他网站上阅读了很多关于我的问题的已解决问题,但我仍然没有明白。我无法执行附加的代码,并且收到“ORA-00979”错误,但我不明白为什么。我读到我不必在我的 GROUP BY 顺序中列出 DECODE 或 COUNT 子句。我仍然得到错误。有谁知道为什么?
SELECT DISTINCT
company.company_id,
company.companyname_1,
customer.customer_id,
customer.customername_1,
DECODE(receipt.table_name, 'PAYMENT', SUM(COUNT(receipt.receipt_id))) as inpayment
FROM
company
JOIN customer ON company.company_id = customer.company_id
JOIN debtor ON customer.customer_id = debtor.customer_id
JOIN debtortrunk ON debtor.debtor_id = debtortrunk.debtor_id
JOIN receipt ON debtor.customer_id = receipt.customer_id AND debtor.deb_id = receipt.deb_id
WHERE
receipt.created >= '24.01.2018' AND
receipt.created <= '28.01.2018'
GROUP BY
company.company_id,
company.companyname_1,
customer.customer_id,
customer.customername_1
【问题讨论】:
-
你想做什么? DECODE 中的聚合在我看来是错误的,特别是 SUM 和 COUNT 一起:也许你需要先 DECODE(即作为最里面的子句)然后聚合结果。
标签: sql oracle group-by sum decode