求助求助!!!如何将查询出来的多条记录按照指定的两个字段汇总成一行记录

qq_207100010 2015-11-15 07:48:46
如何将查询出来的多条记录按照指定的两个字段汇总成一行记录
这是我现有语句
select FYear ,FAccountID,'B','' ,'111','111',
case when FPeriod='1' and FBeginBalance>0 then ABS(convert(money,FBeginBalance)) ELSE 0 end ,
case when FPeriod='1' and FBeginBalance<0 then ABS(convert(money,FBeginBalance)) ELSE 0 end ,
case when FPeriod='1' then convert(money,FCredit) ELSE 0 end,
case when FPeriod='1' then convert(money,FDebit) ELSE 0 end,
case when FPeriod='2' then convert(money,FCredit) ELSE 0 end,
case when FPeriod='2' then convert(money,FDebit) ELSE 0 end,
case when FPeriod='3' then convert(money,FCredit) ELSE 0 end,
case when FPeriod='3' then convert(money,FDebit) ELSE 0 end,
case when FPeriod='4' then convert(money,FCredit) ELSE 0 end,
case when FPeriod='4' then convert(money,FDebit) ELSE 0 end,
case when FPeriod='5' then convert(money,FCredit) ELSE 0 end,
case when FPeriod='5' then convert(money,FDebit) ELSE 0 end,
case when FPeriod='6' then convert(money,FCredit) ELSE 0 end,
case when FPeriod='6' then convert(money,FDebit) ELSE 0 end,
case when FPeriod='7' then convert(money,FCredit) ELSE 0 end,
case when FPeriod='7' then convert(money,FDebit) ELSE 0 end,
case when FPeriod='8' then convert(money,FCredit) ELSE 0 end,
case when FPeriod='8' then convert(money,FDebit) ELSE 0 end,
case when FPeriod='9' then convert(money,FCredit) ELSE 0 end,
case when FPeriod='9' then convert(money,FDebit) ELSE 0 end,
case when FPeriod='10' then convert(money,FCredit) ELSE 0 end,
case when FPeriod='10' then convert(money,FDebit) ELSE 0 end,
case when FPeriod='11' then convert(money,FCredit) ELSE 0 end,
case when FPeriod='11' then convert(money,FDebit) ELSE 0 end,
case when FPeriod='12' then convert(money,FCredit) ELSE 0 end,
case when FPeriod='12' then convert(money,FDebit) ELSE 0 end,
case when FPeriod='13' then convert(money,FCredit) ELSE 0 end,
case when FPeriod='13' then convert(money,FDebit) ELSE 0 end,'0'
from t_Balance where FCurrencyID=1 and FYear='2008'and faccountid='1003'
查询出来结果为图片1

需要将查询出来的表按照前两个字段相同的话就汇总成一条记录,后面为金额字段则汇总求和
...全文
74 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tiger_Zhao 2015-11-16
  • 打赏
  • 举报
回复
    SELECT FYear ,FAccountID,
           SUM(M1) AS M1,
           SUM(M2) AS M2,
           ...
      FROM ( -- 原先的查询,给每个字段都指定列名
            select FYear ,FAccountID,
            case when FPeriod='1' and  FBeginBalance>0 then ABS(convert(money,FBeginBalance)) ELSE 0 end AS M1,
            case when FPeriod='1' and  FBeginBalance<0 then ABS(convert(money,FBeginBalance)) ELSE 0 end AS M2,
            ...
           ) t
  GROUP BY FYear ,FAccountID
qq_207100010 2015-11-15
  • 打赏
  • 举报
回复
各位大神指导指导

22,301

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧