注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

银河军团大本营

光荣的军团,永远的丰碑 <坚持原创>

 
 
 

日志

 
 

Access SQL语句纵列转横列(行列转换/交叉表)  

2013-10-26 15:44:28|  分类: SQL |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

  Access的SQL不支持case when语法,但可以用子查询来实现类似的效果,举例如下:

项目编号 成本项目 用量金额
90012 99警察冬服
90012 付料 20.12
90012 小计 20.12
90012 动力 5.46
90012 工资 30.12
90012 福利费用 4.56
90012 制造费用 9.56
90012 合计 69.82

用SQL语句怎样实现如下查询结果?

项目编号 付料 动力 工资 福利费用 制造费用
90012 20.12 5.46 30.12 4.56 9.56

用子查询可以这样:

SELECT max(项目编号) as '项目编号',
(select sum(用量金额) from 项目成本用量金额表 where 项目编号=x.项目编号 and 成本项目='付料') as 付料,
(select sum(用量金额) from 项目成本用量金额表 where 项目编号=x.项目编号 and 成本项目='动力') as 动力,
(select sum(用量金额) from 项目成本用量金额表 where 项目编号=x.项目编号 and 成本项目='工资') as 工资,
(select sum(用量金额) from 项目成本用量金额表 where 项目编号=x.项目编号 and 成本项目='福利费用') as 福利费用,
(select sum(用量金额) from 项目成本用量金额表 where 项目编号=x.项目编号 and 成本项目='制造费用') as 制造费用
from 项目成本用量金额表 as x
group by 项目编号

经测试发现:max(项目编号) as '项目编号' 在Access中可以直接用 项目编号,但MSSQL等SQL数据库不可以。

原文链接(还是2005年的事,呵呵):http://bbs.2ccc.com/topic.asp?topicid=190999

  评论这张
 
阅读(2550)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018