原来的查询结果是这样的:YEAR MONTH DAY CODE NAME NUM
----------------------------------------------------------
2004 1 2 A00001 Intel 赛扬 2.4GHz 1
2004 1 4 A00001 Intel 赛扬 2.4GHz 1
2004 1 4 A00002 Intel P4 XEON 1.8GHz 2
能否将以上的表格形式改为:品名为列,横向标题,月份为行。如下:YEAR MONTH DAY A00001 A00002
---------------------------------------------------
2004 1 2 1
2004 1 4 1 2是否需要建立多张视图呀,求解??
----------------------------------------------------------
2004 1 2 A00001 Intel 赛扬 2.4GHz 1
2004 1 4 A00001 Intel 赛扬 2.4GHz 1
2004 1 4 A00002 Intel P4 XEON 1.8GHz 2
能否将以上的表格形式改为:品名为列,横向标题,月份为行。如下:YEAR MONTH DAY A00001 A00002
---------------------------------------------------
2004 1 2 1
2004 1 4 1 2是否需要建立多张视图呀,求解??
FYear int,
FMonth int,
FDay int,
FCode varchar(10),
FName varchar(20),
FNum int
)Insert Into #T(FYear,FMonth,FDay,FCode,FName,FNum) values(2004,1,2,'A0001','Intel 赛扬 2.4GHz', 1)Insert Into #T(FYear,FMonth,FDay,FCode,FName,FNum) values(2004,1,4,'A0001','Intel 赛扬 2.4GHz', 1)Insert Into #T(FYear,FMonth,FDay,FCode,FName,FNum) values(2004,1,4,'A0002','Intel P4 XEON 1.8GHz', 2)DECLARE @sql varchar(8000)
SET @sql='select FYear ,FMonth ,FDay '
select @sql=@sql+',sum(case FCode when +'''+FCode+'''then FNum else '''' end)'+FCode+''
from (select distinct FCode from #T) as a
SET @sql=@sql +' From #T Group by FYear,FMonth,FDay'
EXEC(@sql)