110,534
社区成员
发帖
与我相关
我的任务
分享
SELECT a.StatisticsDate as 对话量日期,a.ProjectID as 对话量项目ID,a.LocalAllCount as 本地对话量,
a.NoLocalAllCount as 外地对话量,a.LocalValidCount 本地有效对话量,a.NoLocalValidCount as 外地有效对话量,
b.预约总数,b.到诊总数,b.到诊率,b.主表日期,b.ProjectID as 主表项目ID
FROM DialogueQuantity a FULL join
(select ProjectID,主表日期=convert(varchar(10),OrderTime,120),
COUNT(convert(varchar(10),OrderTime,120)) as 预约总数,
sum(case when PatientStatus='复诊' or PatientStatus='初诊' then 1 else 0 end) as 到诊总数,
ltrim(sum(case when PatientStatus='复诊' or PatientStatus='初诊' then 1 else 0 end)*100/count(1))+'%' as 到诊
率 from Orders where IsArrive=0 group by convert(varchar(10),OrderTime,120) ,ProjectID)b
on a.ProjectID=b.ProjectID
and a.StatisticsDate= b.主表日期
SELECT a.StatisticsDate AS 对话量日期 ,
a.ProjectID AS 对话量项目ID ,
a.LocalAllCount AS 本地对话量 ,
a.NoLocalAllCount AS 外地对话量 ,
a.LocalValidCount 本地有效对话量 ,
a.NoLocalValidCount AS 外地有效对话量 ,
b.预约总数 ,
b.到诊总数 ,
b.到诊率 ,
b.主表日期 ,
b.ProjectID AS 主表项目ID
FROM DialogueQuantity a
FULL JOIN ( SELECT ProjectID ,
主表日期 = CONVERT(VARCHAR(10), OrderTime, 120) ,
COUNT(CONVERT(VARCHAR(10), OrderTime, 120)) AS 预约总数 ,
SUM(CASE WHEN PatientStatus = '复诊'
OR PatientStatus = '初诊' THEN 1
ELSE 0
END) AS 到诊总数 ,
LTRIM(SUM(CASE WHEN PatientStatus = '复诊'
OR PatientStatus = '初诊' THEN 1
ELSE 0
END) * 100 / COUNT(1)) + '%' AS 到诊率
FROM Orders
WHERE IsArrive = 0
GROUP BY CONVERT(VARCHAR(10), OrderTime, 120) ,
ProjectID
) b ON a.ProjectID = b.ProjectID
AND a.StatisticsDate = b.主表日期
FULL JOIN BidStatistics c ON ( a.ProjectID = c.ProjectID
AND a.StatisticsDate = c.StatisticsDate
)
OR ( b.ProjectID = c.ProjectID
AND b.主表日期 = c.StatisticsDate
)