首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求sql语句!多谢了!实在是没分了

2012-12-15 
求sql语句!谢谢了!!实在是没分了!SQL:医生药品1感冒药1消炎药1消炎药2感冒药2消炎药要求统计每个医生开了

求sql语句!谢谢了!!实在是没分了!
SQL:   医生    药品
          1          感冒药
          1          消炎药
          1          消炎药
          2          感冒药
          2          消炎药
要求统计每个医生开了多少次药,开了多少次感冒药,感冒药占的比例有多少? 要求在一个表中体现!求sql语句!
结果应该是这样的:
医生      开药次数      开感冒药次数    开感冒药比列
1           3                   1                        33%
2           2                   1                        50%
[解决办法]
select 医生,COUNT(1) as 开药次数,SUM(case when 药品='感冒药' then 1 else 0 end )as 开感冒要次数,SUM(case when 药品='感冒药' then 1 else 0 end )*1.0/COUNT(1)*100 as 开感冒药比例
from tb
group by 医生
[解决办法]


DECLARE @t TABLE(d INT,p VARCHAR(10));
INSERT INTO @T SELECT 1,'感冒药'
UNION ALL SELECT 1,'消炎药'
UNION ALL SELECT 1,'消炎药'
UNION ALL SELECT 2,'感冒药'
UNION ALL SELECT 2,'消炎药'

SELECT d,SUM(CASE WHEN p='感冒药' THEN 1 END ) AS 感冒药,COUNT(*) AS 药,SUM(CASE WHEN p='感冒药' THEN 1 END )*100.0/COUNT(*) 感冒药比例 FROM @T GROUP BY d
/*
(5 行受影响)
d           感冒药         药           感冒药比例
----------- ----------- ----------- ---------------------------------------
1           1           3           33.333333333333
2           1           2           50.000000000000
*/

[解决办法]
无满意答案结贴了?

热点排行
Bad Request.