2017-03-09 171 views
1

这是我的问题,我试图找到销售额最高的州中销售额最高的员工。我已经编写了单独的查询来首先查找销售额最高的州,然后查找该州销售额最高的员工。SQL将2个查询合并为1

我的问题是我只能有一个查询,所以我必须结合这两个使用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 
+0

我删除了MySQL数据库标签。代码显然是SQL Server。 –

+0

你需要一个额外的连接来基于一个公共列来连接这两个查询 – LONG

+0

@LONG查询2已经连接第一个 –

回答

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 
+0

中的两个表我不需要在这种情况下的where子句,但工作。谢谢 –

+0

@本菲尔确定...在哪里删除...非常感谢 – scaisEdge