我试图完成使用下面的查询如下:SQL服务器 - 在缺少记录加入
- 采取一切记录从
Dial
表和组根据表中所包含 - 加入各种标准表格上的唯一密钥(
Dial.UID
和History.UID
)的History
表,从表Dial
所有正在连接的返回一些信息无法获得ne,除了它没有返回来自Dial
表的UID为0的行(在记录处理完成后这两个表中都会更新,但是如果尚未处理它,它将保持为0)。我希望将UID为0的所有记录的计数添加到Total Avail中。和总数符合条件的列,基于Dial.ID
任何人都可以帮忙吗?
问候
SELECT
(CASE
WHEN History.ID = 824 or Project.Name LIKE 'Example1%' or Project.Name LIKE 'Example2' or Project.Name like '%Example3%'
THEN 'Team One'
WHEN History.ID = 814 OR Project.Name LIKE '%Example4%'
THEN 'Team Two'
ELSE 'Other'
END) as [Team],
Project.Name as [Project],
COUNT(Dial.ID) as [Total Avail.],
COUNT (CASE
WHEN Dial.Flag = '1' AND Dial.Att = 0 OR Dial.Att > 0 AND Dial.Flag = 0
THEN 1
ELSE NULL
END) AS [Total Eligible],
ISNULL(SUM(History.Attempt), 0) AS [Total Attempts],
ROUND(COUNT(CAST(ISNULL(History.Attempt, 0) AS float))/COUNT(CASE WHEN Dial.Flag = '1' OR Dial.Attempts > 0 THEN 1 ELSE NULL END), 2)*100 AS [Penetration %],
COUNT(History.Attempt) as [Unique Attempts],
COUNT (CASE WHEN History.Code IN ('EX1','EX2','EX3','EX4','EX5')
THEN 1 ELSE NULL END) AS [Contacts],
COUNT (CASE WHEN History.Code IN ('EX6','EX6','EX7')
THEN 1 ELSE NULL END) AS [Success]
FROM
Dial Dial
LEFT JOIN
History History ON Dial.UID = History.UID
LEFT JOIN
Project Project ON Dial.ID = Project.ID
WHERE
Dial.Field2 NOT LIKE ''
AND Dial.ID NOT LIKE '-%'
AND History.DateTime > CONVERT(datetime, convert(char(8), getdate(), 112))
GROUP BY
Project.Name, History.ID
此答案也有效!我投了另一个,因为它更详细。不过,感谢您的帮助。 – user2396939