如何在没有聚合函数的sql server中创建数据透视查询
发布时间:2020-12-14 01:05:47 所属栏目:百科 来源:网络整理
导读:我使用MS SQL SERVER 2008和我有以下数据: select * from account;| PERIOD | ACCOUNT | VALUE |----------------------------| 2000 | Asset | 205 || 2000 | Equity | 365 || 2000 | Profit | 524 || 2001 | Asset | 142 || 2001 | Equity | 214 || 2001
我使用MS SQL SERVER 2008和我有以下数据:
select * from account; | PERIOD | ACCOUNT | VALUE | ---------------------------- | 2000 | Asset | 205 | | 2000 | Equity | 365 | | 2000 | Profit | 524 | | 2001 | Asset | 142 | | 2001 | Equity | 214 | | 2001 | Profit | 421 | | 2002 | Asset | 421 | | 2002 | Equity | 163 | | 2002 | Profit | 325 | 我想让他们成为这样: | ACCOUNT | 2000 | 2001 | 2002 | -------------------------------- | Asset | 205 | 142 | 421 | | Equity | 365 | 214 | 163 | | Profit | 524 | 421 | 325 | 我试图查询使用枢轴查询,但值必须使用聚合函数,结果是不适当的。我该怎么办? SELECT * FROM ( SELECT [Period],[Account],[Value] FROM TableName ) AS source PIVOT ( MAX([Value]) FOR [Period] IN ([2000],[2001],[2002]) ) as pvt 其他方式, SELECT ACCOUNT,MAX(CASE WHEN Period = '2000' THEN Value ELSE NULL END) [2000],MAX(CASE WHEN Period = '2001' THEN Value ELSE NULL END) [2001],MAX(CASE WHEN Period = '2002' THEN Value ELSE NULL END) [2002] FROM tableName GROUP BY Account > SQLFiddle Demo (both queries) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- Unity3D读取XML文档信息
- c# – MaasOne yahoo-finance-managed为Alphabet
- c# – 错误:项目上未安装EntityFramework包
- ruby-on-rails – Rails和Devise – 访问会话数据
- postgresql 比较语句 IS DISTINCT FROM
- webpack-dev-server的配置和使用
- xcode – iOS UIAutomation Simulator 5.0:目标
- ruby-on-rails – 选择预先选择了多个值的标记 –
- Cocos2d-X 3.4版-碰撞检测原理《赵云要格斗》
- oracle 11gR2 win64安装配置教程另附基本操作
热点阅读