SQL将2个查询合并为1个

时间:2017-03-09 20:20:07

标签: sql sql-server

这是我的问题,我正在努力寻找在销售额最高的州销售额最高的员工。我已经编写了单独的查询,首先找到销售额最多的州,然后找到销售额最高的员工。

我的问题是我只能有一个查询,所以我必须使用JOIN或子查询来组合这两个查询,但我无法这样做,因为我的第一个查询返回了2个单独的列。我如何组合这些查询?

SELECT      TOP 1 
            StateProvince AS "Most Popular State",
            COUNT (*) AS "Number Sold"
FROM        CUSTOMER JOIN INVOICE ON CustomerID = FK_CustomerID

GROUP BY    StateProvince
ORDER BY    "Number Sold" DESC



SELECT      TOP 1
            EMPLOYEE.Name,
            EmpID,
            COUNT(InvoiceNbr) AS "Number Sold"
FROM        EMPLOYEE JOIN INVOICE ON EmpID = FK_EmpID
JOIN        CUSTOMER ON FK_CustomerID = CustomerID
WHERE       StateProvince = --Most popular state found in 1st query
GROUP BY    EMPLOYEE.Name, EmpID
ORDER BY    "Number Sold" DESC

1 个答案:

答案 0 :(得分:1)

应该是这个

SELECT      TOP 1
            EMPLOYEE.Name,
            EmpID,
            COUNT(InvoiceNbr) AS "Number Sold By EMP", 
            StateProvince AS "Most Popular State",
            COUNT (*) AS "Number Sold For STATE"
FROM        EMPLOYEE JOIN INVOICE ON EmpID = FK_EmpID
JOIN        CUSTOMER ON FK_CustomerID = CustomerID
GROUP BY    EMPLOYEE.Name, EmpID
ORDER BY    "Number Sold By EMP" DESC