读书人

急一个SQL语句有关问题

发布时间: 2013-06-25 23:45:41 作者: rapoo

急急急:一个SQL语句问题
目前有一个表,是企业一年十二个月份的业绩,表的结构是这样的:
急一个SQL语句有关问题


其中userguid是企业编码,years是年份,后面的firstyield~twelfthyield是1到12月的业绩,最后一个字段infoType是代表业绩的一个类型,值为1、2、3。

在页面显示的时候我想要的显示结果是这样的
急一个SQL语句有关问题

但是坑爹的是业绩的字段都是varchar类型,坑爹的前人不知道怎么设计的,本来想用group by分组求和来横向显示,但现在不行了,哪位大神给个提示,用一个SQL语句查询出来。 SQL .net? 急
[解决办法]
这是1月份的,其他月份你自己复制粘贴吧。
还有我不知道你那个1、2、3分别代表什么,所以infotype你自己去调。另外如果不转换类型你这个根本做不了,我已经用ISNUMERIC来限定只统计能转换成数值型的数据,其他数据赋值为0

SELECT  userguid ,
years ,
[一月产量] = SUM(CASE WHEN infotype = 1
AND ISNUMERIC(firstyield) = 1
THEN CONVERT(DECIMAL(9, 2), firstyield)
ELSE 0
END) ,
[一月产值] = SUM(CASE WHEN infotype = 2
AND ISNUMERIC(firstyield) = 1
THEN CONVERT(DECIMAL(9, 2), firstyield)
ELSE 0
END) ,
[一月税金] = SUM(CASE WHEN infotype = 3
AND ISNUMERIC(firstyield) = 1
THEN CONVERT(DECIMAL(9, 2), firstyield)
ELSE 0
END)
FROM TB
--WHERE years ='2007'--如果只需要某年的就取消这个注释


GROUP BY userguid ,
years

读书人网 >SQL Server

热点推荐