日期:2014-05-17  浏览次数:20438 次

请教一个统计类的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 [名称]