首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql行行转列,该如何解决

2013-07-09 
sql行行转列我有两张表A,BA表 有 Num,Type,MainNum,OperaNameB表有Num,CostName,ShouldMoney,RealMoney,Co

sql行行转列
我有两张表A,B
A表 有 Num,Type,MainNum,OperaName
B表有  Num,CostName,ShouldMoney,RealMoney,CostType(标示应收应付(1,0)),FlagClosIng

我想查出这样的格式
Num,Type,MainNum,OperaName,CostName,ShouldMoney(应收金额),RealMoney(实收金额),ShouldMoney(应付金额),RealMoney(实付金额),FlagClosIng

让应收和应付显示在一行,求高手给个sql语句



[解决办法]
目测楼上的可能会报错,稍微改动一下



;WITH aaa AS
(
select Num,CostName,
sum(case CostType when 1 then RealMoney else 0 end) as RealMoney(实付金额),
sum(case CostType when 1 then ShouldMoney else 0 end) as ShouldMoney(应付金额),
sum(case CostType when 0 then RealMoney else 0 end) as RealMoney(实收金额),
sum(case CostType when 0 then ShouldMoney else 0 end) as ShouldMoney(应收金额)
from B 
GROUP BY Num,CostName
)
SELECT 
    a.NUM,TYPE,MainNum,OperaName,CostName,RealMoney(实付金额),
ShouldMoney(应付金额),RealMoney(实收金额),ShouldMoney(应收金额)
FROM A INNER JOIN aaa AS B ON A.Num=B.Num

热点排行
Bad Request.