[英]SUM, JOIN, GROUP BY, ORDER BY, PARTITION, OVER. What am I missing?
我需要一点帮助。 我知道有两个表需要联接,这不是问题。 我需要显示的是发票号,发票日期和发票中购买的所有产品的总金额。 该信息需要按发票编号降序排列,然后按发票日期升序排列。 到目前为止,我抛出的错误是:
SELECT LINE.INV_NUMBER,
INVOICE.INV_DATE,
SUM(LINE.LINE_PRICE)
FROM LINE
FULL OUTER JOIN INVOICE ON LINE.INV_NUMBER=INVOICE.INV_NUMBER
GROUP BY LINE.INV_NUMBER
ORDER BY LINE.INV_NUMBER DESC,
INVOICE.INV_DATE ASC;
在我拔出所有头发之前,我们将不胜感激。
更新:
我已将声明更新为:
SELECT LINE.INV_NUMBER AS "Line Number",
INVOICE.INV_DATE AS "Invoice Date",
SUM(LINE.LINE_PRICE) AS "Total Sales"
FROM INVOICE FULL OUTER JOIN LINE ON INVOICE.INV_NUMBER=LINE.INV_NUMBER
GROUP BY LINE.INV_NUMBER, INVOICE.INV_DATE
ORDER BY LINE.INV_NUMBER DESC, INVOICE.INV_DATE ASC;
我正在获取数据而不是错误。 我现在遇到的问题是我需要读取的数据是按降序排列的“发票编号”和按“升序排列”的“发票日期”,因此,我假设我需要两个数据输出。 我该怎么办?
我相信只有在group by中使用的那些列才能在select子句中检索。
可能是您需要包含INV_DATE,LINE_PRICE,然后在select子句中检索其聚合。
请参阅java2s.com中的有用示例示例。
问候,斯里哈里
尝试GROUP BY LINE.INV_NUMBER, INVOICE.INV_DATE
取决于您使用的DBMS,可能不是问题。
SELECT LINE.INV_NUMBER AS "Line Number",
INVOICE.INV_DATE AS "Invoice Date",
SUM(LINE.LINE_PRICE) AS "Total Sales"
FROM INVOICE FULL OUTER JOIN LINE ON INVOICE.INV_NUMBER=LINE.INV_NUMBER
GROUP BY LINE.INV_NUMBER, INVOICE.INV_DATE
ORDER BY INVOICE.INV_DATE ASC, LINE.INV_NUMBER DESC;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.