我正在尝试使用以下查询完成以下操作:
Dial
根据表中包含的各种条件从表和组中获取所有记录History
通过唯一键 (Dial.UID
and )将表连接到表,History.UID
以返回一些无法从Dial
表中获取的信息
一切工作正常,除了它没有从Dial
表中返回 UID 为 0 的行(一旦处理了记录,这将在两个表中更新,但如果尚未处理,则保持为 0)。我希望将 UID 为 0 的所有记录的计数添加到 Total Avail 中。和 Total Eligible 列,基于 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