34,594
社区成员
发帖
与我相关
我的任务
分享
create table #tablea ([no] int,[month] varchar(10))
insert into #tablea values(1,'2007/11')
insert into #tablea values(2,'2007/11')
insert into #tablea values(3,'2007/11')
insert into #tablea values(4,'2007/12')
create table #tableb ([no] int,line_no int,dept varchar(10),[type] int,[money] int )
insert into #tableb values(1, 1 ,'A',1,50)
insert into #tableb values(1 , 2 ,'A', 1 ,60 )
insert into #tableb values(1 , 3, 'B',2 ,100 )
insert into #tableb values(2 , 1, 'B',1 , 80 )
insert into #tableb values(2 , 2 ,'C',2, 130)
insert into #tableb values(3 , 1 ,'A',2,40)
insert into #tableb values(3 , 2 ,'B',2, 70)
insert into #tableb values(3, 3 ,'C',3 , 90 )
insert into #tableb values(3, 4 ,'C',3 , 100 )
insert into #tableb values(4 , 1,'B',1,40)
insert into #tableb values(5 , 1 ,'C',1 ,70)
select a.[month],b.[dept],type_1_money=sum(case when [type]=1 then [money] else 0 end),type_2_money=sum(case when [type]=2 then [money] else 0 end),type_3_money=sum(case when [type]=3 then [money] else 0 end) from #tablea a inner join #tableb b on a.[no]=b.[no] group by [month],[dept] having [month]='2007/11'
month dept type_1_money type_2_money type_3_money
---------- ---------- ------------ ------------ ------------
2007/11 A 110 40 0
2007/11 B 80 170 0
2007/11 C 0 130 190
(3 行受影
select a.[month],b.[dept],type_1_money=sum(case when [type]=1 then [money] else 0 end),type_2_money=sum(case when [type]=2 then [money] else 0 end),type_3_money=sum(case when [type]=3 then [money] else 0 end) from #tablea a inner join #tableb b on a.[no]=b.[no] group by [month],[dept] having [month]='2007/11'
create table #tablea ([no] int,[month] varchar(10))
insert into #tablea values(1,'2007/11')
insert into #tablea values(2,'2007/11')
insert into #tablea values(3,'2007/11')
insert into #tablea values(4,'2007/12')
create table #tableb ([no] int,line_no int,[type] int,[money] int )
insert into #tableb values(1, 1 ,1,50)
insert into #tableb values(1 , 2 , 1 ,60 )
insert into #tableb values(1 , 3, 2 ,100 )
insert into #tableb values(2 , 1, 1 , 80 )
insert into #tableb values(2 , 2 ,2, 130)
insert into #tableb values(3 , 1 ,1,40)
insert into #tableb values(3 , 2 ,2, 70)
insert into #tableb values(3, 3 ,3 , 90 )
insert into #tableb values(4 , 1,1,40)
insert into #tableb values(5 , 1 ,1 ,70)
select a.[month],[type],[money]=sum([money]) from #tablea a inner join #tableb b on a.[no]=b.[no] group by [month],[type] having [month]='2007/11'
month type money
---------- ----------- -----------
2007/11 1 230
2007/11 2 300
2007/11 3 90
(3 行受影响)