MyException - 我的异常网
当前位置:我的异常网» Sql Server » 请问一个统计类的SQL语句,希望大家帮忙分析上这么写

请问一个统计类的SQL语句,希望大家帮忙分析上这么写

www.MyException.Cn  网友分享于:2013-02-16  浏览:2次
请教一个统计类的SQL语句,希望大家帮忙分析下这么写。
现在有一个这样的表,如下

id(唯一编号)   name(名称)   type(所属类型)   

1              水果              1   

2              苹果              1   

3              香蕉              1   

4              玩具              4   

5              泰迪熊            4   

6              变形金刚          4   

7              流氓兔            4   

要求统计后,是大类的,后面显示小类品种的总数,如果是小类,后面就是大类的名称,要求最后的查询如下

id(唯一编号)   name(名称)   数量或类型   

1               水果            2   

2               苹果            水果   

3               香蕉            水果   

4               玩具            3   

5               泰迪熊          玩具   

6               变形金刚        玩具   

7               流氓兔          玩具   



各位高手帮忙分析下,这个SQL语句应该怎么写啊,谢谢!!!


------解决方案--------------------
USE test
GO


-->生成表tb

if object_id('tb') is not null 
drop table tb
Go
Create table tb([id] smallint,[name] nvarchar(4),[type] smallint)
Insert into tb
Select 1,N'水果',1
Union all Select 2,N'苹果',1
Union all Select 3,N'香蕉',1
Union all Select 4,N'玩具',4
Union all Select 5,N'泰迪熊',4
Union all Select 6,N'变形金刚',4
Union all Select 7,N'流氓兔',4


--------------- 1.

SELECT   
b.id AS [唯一编号]
,b.name AS [名称]
,CASE WHEN b.id<>b.type THEN a.name ELSE LTRIM((SELECT COUNT(1) FROM tb AS x WHERE x.type=a.id AND x.id<>a.id)) END AS [数量或类型] 

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有