我需要找出有多少客户是新的,以及一周内员工返回的人数。结合两条sql语句需要帮助
要找出客户的员工上周有,我查询:
SELECT DISTINCT ClientIdNumber FROM Transactions
WHERE [Date] >= @startDate AND [Date] <= @endDate
AND EmployeeIdNumber = @employeeIdNumber
要了解客户和员工是否有过联系,我可以查询:
IF (
SELECT COUNT(*) AS n FROM Transactions
WHERE [Date] < @startDate
AND ClientIdNumber = @clientIdNumber
AND EmployeeIdNumber = @employeeIdNumber
) > 0
SELECT 1
ELSE SELECT 0
我想将这些查询合并为一个,以便结果集看起来像这样:
EmployeeIdNumber - NewClients - ReturningClients
使用这两个单独的查询,我必须循环遍历第一个结果集并应用第二个,这当然非常慢(并且很糟糕)
我无法绕过它,因为我需要结果来自第二个查询中的第一个查询,但我相信有一个聪明的方法可以做到这一点。