中成网站建设
    成都做网站,就选中成网站建设!专业四川网站建设,成都网站建设服务提供商
            企业宣传网站建设、电子商务网站建设、OA办公系统。联系电话:028-66165255
    资讯列表  
 网站数据仓库的基本架构分析探…
 asp.net 连接sql server 2005 …
 SQL Server 2005服务无法启动的…
 sql语句Group By用法一则
 在asp.net中备份还原SQL_Serve…
 sqlserver中如何实现时间按月,…
 教你如何利用SQL Server保护数…
 MySQL全文搜索索引的字段作用
 SQLServer数据库清空日志 截断…
 压缩日志及数据库文件大小-数据…
 存储过程游标及WHILE语句
 MSSQL行变列(列不固定)
 MSSQL Case when用法
 mssql 查找字符串是否存在 SQL…
 sp_executesql介绍和使用
    资讯详情  
MSSQL行变列(列不固定)
发布时间:2010-01-26                  来源:成都网站建设--中成网建         【加入收藏】

usertype表

ChargeName
小车
大车
中巴
免费

 

统计后的收费表

SELECT Operator, ChargeType, SUM(Price) AS price
FROM InOutList
GROUP BY Operator, ChargeType
ORDER BY Operator, ChargeType

Operator ChargeType    price
System 大车 160
System 免费 0
System 小车 40
System 中巴 45
冯丽 大车 0
冯丽 免费 0
冯丽 小车 510
冯丽 中巴 15
焦艳玲 大车 60
卢建玲 大车 100
马春艳 大车 220
徐金涛 免费 0
徐金涛 小车 240
徐金涛 中巴 30
杨天明 大车 0
岳红胜 免费 0
岳红胜 小车 80
张新乐 免费 0
张新乐 小车 190

要求的效果如下:

operator     小车     大车     中巴     免费
System 40 160 45 0
冯丽 510 0 15 0
焦艳玲 0 60 0 0
卢建玲 0 100 0 0
马春艳 0 220 0 0
徐金涛 240 0 30 0
杨天明 0 0 0 0
岳红胜 80 0 0 0
张新乐 190 0 0 0

实现:

declare @sql varchar(8000)
set @sql='select bb.operator'
select @sql=@sql+','+usertype.ChargeName+'=isnull(sum(case chargetype when '''+usertype.ChargeName+''' then bb.price end),0) 'from usertype
set @sql=@sql+' from (SELECT Operator, ChargeType, SUM(Price) AS price
FROM InOutList
GROUP BY Operator, ChargeType) bb group by operator order by operator'
--print @sql
exec(@sql)

 
上一篇:MSSQL Case when用法
下一篇:存储过程游标及WHILE语句
【打印】    【关闭】    【字体变小】    【字体变大】

友情链接

首页  |  建站学院  |  网站建设  |  成功案例  |  业务体系  |  软件定制  |  解决方案  |  联系我们  |  免责声明
中成网建公司地址:四川省成都市双楠双安东巷1号18-3-5 电话:028-6616 5255 版权所有 @ 中成网建
成都网站建设网址:www.csccd.net www.csccd.cn 邮箱:web#csccd.net
信息产业部备案号:蜀ICP备08106559号