• 主页
  • 基础类
  • 应用实例
  • 新技术前沿

急急急……。这个语句如何写。

liqijian 2013-06-15 11:04:36
SQL2000,数据表:TEST
日期 名称 数额
2013-01-01/AA/100
2013-02-01/AA/100
2013-06-30/AA/100
2012-02-05/BB/50
2013-05-05/BB/10

假设我要查询的时间条件为:2013年2季度
请问要想得到以下的查询结果,SELECT语句该如何写?
名称/本季度数额/本年度数额/累计数额
AA/100/300/300
BB/10/10/60
...全文
93 点赞 收藏 5
写回复
5 条回复
my_money 2013年06月16日
select * from TEST where 日期 > '2013-02-01'
回复 点赞
liqijian 2013年06月16日
楼上的做法是实现不了的。这涉及到分类汇总。但语句具体如何写不清楚。注意的是表中的记录是5行,经查询后显示汇总成两行了。
回复 点赞
代码兔 2013年06月16日

select 名称,
sum(case when 日期 BETWEEN '2013-04-01' and  '2013-06-30' then 数额 else 0 end) as 本季度数额, 
sum(case when year(日期)=2013 then 数额 else 0 end) as 本年度数额, 
sum(数额) as 累计数额
from test
group by 名称
回复 点赞
---涛声依旧--- 2013年06月16日
select T.名称 ,(SELECT SUM([数额]) 本季度数额 FROM Test WHERE CONVERT(VARCHAR(10),[日期],120)>='2013-04-01' AND CONVERT(VARCHAR(10),[日期],120)<='2013-06-30' --2013年2季度 and [名称]=T.名称 GROUP BY [名称]) AS 本季度数额 ,(SELECT SUM([数额]) 本年度数额 FROM Test WHERE YEAR([日期])='2013'--本年度 and [名称]=T.名称 GROUP BY [名称]) AS 本季度数额 ,(SELECT SUM([数额]) 累计数额 FROM Test --累计数额 WHERE [名称]=T.名称 GROUP BY [名称]) AS 累计数额 FROM test T GROUP BY t.名称
回复 点赞
---涛声依旧--- 2013年06月16日
--建立测试环境 IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Test]') AND type in (N'U')) DROP TABLE [dbo].[Test] GO CREATE TABLE [dbo].[Test]( [日期] [smalldatetime] NULL, [名称] [varchar](50) NULL, [数额] [decimal](18, 0) NULL ) ON [PRIMARY] GO INSERT INTO dbo.Test SELECT '2013-01-01','AA',100 UNION ALL SELECT '2013-02-01','AA',100 UNION ALL SELECT '2013-06-30','AA',100 UNION ALL SELECT '2012-02-05','BB',50 UNION ALL SELECT '2013-05-05','BB',10 --查询 SELECT x.[名称],x.本季度数额,y.本年度数额,z.累计数额 FROM (SELECT [名称],SUM([数额]) 本季度数额 FROM Test WHERE CONVERT(VARCHAR(10),[日期],120)>='2013-04-01' AND CONVERT(VARCHAR(10),[日期],120)<='2013-06-30' --2013年2季度 GROUP BY [名称]) x INNER JOIN (SELECT [名称],SUM([数额]) 本年度数额 FROM Test WHERE YEAR([日期])='2013'--本年度 GROUP BY [名称]) y ON x.[名称]=y.[名称] INNER JOIN (SELECT [名称],SUM([数额]) 累计数额 FROM Test --累计数额 GROUP BY [名称]) z ON x.[名称]=z.[名称] --结果 /* 名称 本季度数额 本年度数额 累计数额 AA 100 300 300 BB 10 10 60 */
回复 点赞
发动态
发帖子
MS-SQL Server
创建于2007-09-28

1.4w+

社区成员

25.3w+

社区内容

MS-SQL Server相关内容讨论专区
社区公告
暂无公告