我有这个查询来显示
有2张桌子,我将从表格翻新中获得翻新的数量,而客户ID和名称来自表1,客户.

SELECT c.[Customer-ID], c.name, COUNT(*)"Number of Renovation"
FROM CUSTOMER c, RENOVATION r
WHERE c.[Customer-ID] = r.[Customer-ID]
GROUP BY c.[Customer-ID], c.name
HAVING Count(*) in
(SELECT COUNT(*) FROM RENOVATION GROUP BY [Customer-ID])
ORDER BY c.[customer-id]
Run Code Online (Sandbox Code Playgroud)
这不是我查询的正确方法,任何人都知道如何缩短查询?或其他方式吗?虽然它仍然找到答案.我顺便学习SQL服务器.
好的,所以你想要客户和他们的装修 - 为什么不使用:
SELECT c.[Customer-ID], c.name, COUNT(*) AS 'Number of Renovations'
FROM dbo.CUSTOMER c
INNER JOIN dbo.RENOVATION r ON c.[Customer-ID] = r.[Customer-ID]
GROUP BY c.[Customer-ID], c.name
Run Code Online (Sandbox Code Playgroud)
我不太明白你要用HAVING COUNT(*) IN......查询的部分来实现什么......
如果您希望所有客户至少进行一次翻新 - 试试这个:
SELECT c.[Customer-ID], c.name, COUNT(*) AS 'Number of Renovations'
FROM dbo.CUSTOMER c
INNER JOIN dbo.RENOVATION r ON c.[Customer-ID] = r.[Customer-ID]
GROUP BY c.[Customer-ID], c.name
HAVING COUNT(*) > 0
Run Code Online (Sandbox Code Playgroud)