繁体   English   中英

总和,加入,分组依据,订购依据,分区,结束。 我想念什么?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM