tb1 机构 帐号 金额 日期
001 a1 100 20090101
001 a2 120 20090302
002 a1 500 20090109
类似上面的表,我要按照机构产生下列结果 tb2 机构 金额1(当月) 金额2(当年)
001 100 220
002 500 500
从一行表里统计两次金额,一次按照日期like '200901%' ,一次按照日期 like '2009%s' 忘高人赐教!
001 a1 100 20090101
001 a2 120 20090302
002 a1 500 20090109
类似上面的表,我要按照机构产生下列结果 tb2 机构 金额1(当月) 金额2(当年)
001 100 220
002 500 500
从一行表里统计两次金额,一次按照日期like '200901%' ,一次按照日期 like '2009%s' 忘高人赐教!
-- -----------t_mac 小编-------------
---希望有天成为大虾----
-- =========================================IF OBJECT_ID('tb') IS NOT NULL
DROP TABLE tb
GO
CREATE TABLE tb(机构 varchar(3),账号 varchar(10),金额 int ,日期 varchar(100))
go
insert into tb
select '001','a1',100,'20090101'union all
select '001','a2',120,'20090302'union all
select '002','a1',500,'20090109'
go
select 机构,
[金额1]=max(case when 日期 like '200901%' then 金额 else 0 end),
[金额2]=SUM(金额)
from tb
group by 机构
/*------------
001 100 220
002 500 500
-------*/
-- =========================================
-- -----------t_mac 小编-------------
---希望有天成为大虾----
-- =========================================IF OBJECT_ID('tb') IS NOT NULL
DROP TABLE tb
GO
CREATE TABLE tb(机构 varchar(3),账号 varchar(10),金额 int ,日期 datetime)--这里
go
insert into tb
select '001','a1',100,'20090101'union all
select '001','a2',120,'20090302'union all
select '002','a1',500,'20090109'
go
select 机构,
[金额1]=max(case when DATEPART(month,日期)=01 then 金额 else 0 end),
[金额2]=SUM(金额)
from tb
group by 机构
/*------------
001 100 220
002 500 500
-------*/
,sum(金额) as [金额2(当年)]
from tb1
where 日期 like '2009%'
group by 机构
,sum(金额) as [金额2(当年)]
from tb1
where 日期 like '2009%'
group by 机构正解