行轉列之前SQL
SELECT zhenshi, status, COUNT(1) AS n
FROM [MyPlan]
WHERE 1 = 1
AND leibie = 1
AND [SickID] = 0
AND zhenshi <> '協同診療'
AND t >= '2020-06-06 00:00:00'
AND t < '2020-06-08 00:00:00'
GROUP BY zhenshi, status
行轉列之前的運行結果
------------------------------------------------------------------------------------------------------
行轉列之後SQL
select 0
,zhenshi
,sum(case --status
when status!='完成' then n
else 0
end) '預約病人數量'
,sum(case status
when '已來診' then n
else 0
end) '已來診'
,sum(case --status
when status!='已來診' and status!='完成' then n
else 0
end) '未來診'
from
(
select zhenshi,status,count(1) n
--CASE status WHEN '開啓' THEN status ELSE '開啓' END,
--CASE status WHEN '已來診' THEN status ELSE '已來診' END,
--CASE status WHEN '未來診' THEN status ELSE '未來診' END
FROM [MyPlan] where 1=1 and leibie=1 and [SickID] =0 and zhenshi<>'協同診療' --and status='已來診'
--and zhenshi='好孕一組'
and t>='2020-06-06 00:00:00' and t<'2020-06-08 00:00:00'
group by zhenshi,status
)t
where t.zhenshi!=''
group by zhenshi
行轉列之後的運行結果
這時候再去程序裏遍歷,就簡單顯示了。
這裏只做行轉列。
列轉行暫未寫-2020.06.07