SQL汇总报告,寻找优雅的解决方案
发布时间:2021-04-02 23:28:21 所属栏目:MsSql教程 来源:网络整理
导读:我有一个包含3列的表:ItemCode,Quantity和DocDate. 我想以更“优雅”的方式创建以下报告: SELECT T0.ItemCode,(SELECT SUM(QUANTITY) FROM MyTable T1 WHERE YEAR(T0.DocDate) = 2011 AND T0.ItemCode = T1.ItemCode) AS '2011',(SELECT SUM(QUANTITY) F
我有一个包含3列的表:ItemCode,Quantity和DocDate.
SELECT T0.ItemCode,(SELECT SUM(QUANTITY) FROM MyTable T1 WHERE YEAR(T0.DocDate) = 2011 AND T0.ItemCode = T1.ItemCode) AS '2011',(SELECT SUM(QUANTITY) FROM MyTable T1 WHERE YEAR(T0.DocDate) = 2012 AND T0.ItemCode = T1.ItemCode) AS '2012' FROM MyTable T0 GROUP BY T0.ItemCode,YEAR(T0.DocDate) 我很确定有更好,更有效的方式来编写这个,但我无法想出正确的语法.有任何想法吗? 解决方法你可以试试这个:SELECT T0.ItemCode,SUM(CASE WHEN YEAR(T0.DocDate) = 2011 THEN QUANTITY ELSE 0 END) AS '2011',SUM(CASE WHEN YEAR(T0.DocDate) = 2012 THEN QUANTITY ELSE 0 END) AS '2012' FROM MyTable T0 GROUP BY T0.ItemCode (编辑:我爱制作网_潮州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 盛大游戏启动上市程序 知情人士披露内幕
- 微软64位Longhorn操作系统截图大赏
- sql-server – SQL Server如何确定缺失索引请求中的键列顺序
- sql-server-2000 – 如何从PHP 5.3及更高版本连接到MSSQL 2
- SQL 2000复制错误 – 订阅已标记为非活动状态,必须重新初始
- 藤泽选Sprint连接亚洲、欧洲和北美业务机构
- sql-server – 为什么这些字符在SQL Server中都是相同的?
- Telnet是什么命令 Telnet命令的使用方法介绍
- sql – 如何获取上个月的数据和月初数据
- sql-server – 存储过程和OPTIMIZE FOR UNKNOWN