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

求sql 语句!该怎么解决

2013-01-25 
求sql 语句!!SQL:医生药品1感冒药1消炎药1消炎药2感冒药2消炎药要求统计每个医生开了多少次药,开了多少次

求sql 语句!!
SQL:   医生    药品
          1          感冒药
          1          消炎药
          1          消炎药
          2          感冒药
          2          消炎药
要求统计每个医生开了多少次药,开了多少次感冒药,感冒药占的比例有多少? 要求在一个表中体现!求sql语句!
结果应该是这样的:
医生      开药次数      开感冒药次数    开感冒药比列
1           3                   1                        33%
2           2                   1                        50%
[解决办法]

USE test
go

-->生成表t1
--if object_id('t1') is not null 
--drop table t1
--Go
Create table t1([医生] smallint,[药品] nvarchar(3))
Insert into t1
Select 1,N'感冒药'
Union all Select 1,N'消炎药'
Union all Select 1,N'消炎药'
Union all Select 2,N'感冒药'
Union all Select 2,N'消炎药'



SELECT 
医生
,COUNT(药品)AS 开药次数 
,SUM(CASE WHEN 药品=N'感冒药' THEN 1 ELSE 0 END)AS 开感冒药次数
,LTRIM(CONVERT(TINYINT,SUM(CASE WHEN 药品=N'感冒药' THEN 1 ELSE 0 END)*100.0/COUNT(药品)))+'%'AS 开感冒药比列
FROM t1 AS a
GROUP BY 医生

/*
医生   开药次数    开感冒药次数  开感冒药比列
------ ----------- -----------   ------
1   3           1             33%
2   2           1             50%
*/

热点排行