在查询中无法联接Oracle SQL Server中的2个表

时间:2018-10-26 01:03:14

标签: sql oracle join

我有两个表LGINVOICELGCUSTOMER,这些表具有以下列:

  • LGINVOICE:INV_NUM,INV_DATE,CUST_CODE,INV_TOTAL,EMPLOYEE_ID

  • LGCUSTOMER:CUST_CODE,CUST_FNAME,CUSTLNAME,CUST_BALANCE

我的问题是,我需要显示客户代码,名字,姓氏,以及累计发票总额大于$ 1,500的客户的所有发票总额的总和,并按发票总和对输出进行排序降序排列。

我已经完成排序和未完成的工作(如下面的SQL代码所示),但是在使名字和姓氏显示在查询结果中所需的联接方面遇到了麻烦。我对SQL还是很陌生,希望能提供帮助!

我的查询:

SELECT CUST_CODE, SUM(INV_TOTAL) AS TOTALINVOICE
FROM LGINVOICE
GROUP BY CUST_CODE
HAVING SUM(INV_TOTAL) > 1500
ORDER BY TOTALINVOICE DESC;

当前,它以正确的顺序输出正确的CUST_CODETOTALINVOICE。我只是不知道如何正确地联接客户表以允许显示名字和姓氏列。

1 个答案:

答案 0 :(得分:1)

您将使用JOIN。一种方法在聚合之前执行JOIN

SELECT c.CUST_FNAME, c.CUSTLNAME, i.CUST_CODE, SUM(i.INV_TOTAL) AS TOTALINVOICE
FROM LGINVOICE i JOIN
     LGCUSTOMER c
     ON c.CUST_CODE = i.CUST_CODE
GROUP BY c.CUST_FNAME, c.CUSTLNAME, i.CUST_CODE
HAVING SUM(i.INV_TOTAL) > 1500
ORDER BY TOTALINVOICE DESC;