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

请问一道统计的SQL题

2012-02-09 
请教一道统计的SQL题有这样的一个表:IDnameIndexDescQuestionanswer1张三1学生调查是否男生是2张三1学生调

请教一道统计的SQL题
有这样的一个表:
IDnameIndexDescQuestionanswer
1张三1学生调查 是否男生 是

2张三1学生调查 是否团员 是

3张三1学生调查 是否班干部 否

4张三1学生调查 是否内宿是

5张三1学生调查 是否特长生 否

6张三1学生调查 是否教职工子弟 不详

7张三2家庭调查 是否特困户 否
8张三2家庭调查 是否广州市户口 是


现要统计学生在各次调查中答案为'是'的总数,'否'的总数,'不详'的总数,
0:不详 1:否 2:是  
且按如下排列,请问如何实现,谢谢!

[name][Desc][是][否][不详]
张三学生调查 3 2 1
张三家庭调查 1 1 0


建表:

create table table1
(
[ID] [int] NOT NULL,
[name] [varchar](50),
[index] [int] NOT NULL,
[Desc] [varchar](50),
[Question] [varchar](100),
[answer] [int] NOT NULL
)

INSERT INTO table1([ID],[name],[index],[Desc],[Question],[answer])
VALUES(1,'张三',1,'学生调查','是否男生',2)
INSERT INTO table1([ID],[name],[index],[Desc],[Question],[answer])
VALUES(2,'张三',1,'学生调查','是否团员',2)
INSERT INTO table1([ID],[name],[index],[Desc],[Question],[answer])
VALUES(3,'张三',1,'学生调查','是否班干部',1)
INSERT INTO table1([ID],[name],[index],[Desc],[Question],[answer])
VALUES(4,'张三',1,'学生调查','是否内宿',2)
INSERT INTO table1([ID],[name],[index],[Desc],[Question],[answer])
VALUES(5,'张三',1,'学生调查','是否特长生',1)
INSERT INTO table1([ID],[name],[index],[Desc],[Question],[answer])
VALUES(6,'张三',1,'学生调查','是否教职工子弟',0)
INSERT INTO table1([ID],[name],[index],[Desc],[Question],[answer])
VALUES(7,'张三',2,'家庭调查','是否特困户',1)
INSERT INTO table1([ID],[name],[index],[Desc],[Question],[answer])
VALUES(8,'张三',2,'家庭调查','是否广州市户口',2)

[解决办法]

SQL code
--加多个排序select     name,    [Desc],    [是]=sum(case when answer=2 then 1 else 0 end ),    [否]=sum(case when answer=1 then 1 else 0 end ),    [不详]=sum(case when answer=0 then 1 else 0 end )from table1    GROUP BY name,    [Desc]order by [是] desc 

热点排行