求助:如何对一张表中的同个字段取两个汇总结果

bingobird 2003-01-06 03:01:39
如有一张费用表(TPAY),有个金额字段(MONEY),一个标志字段(FLAG;1:有效;2:失效),如何在一条语句中根据标志汇总金额。
效果:
有效 失效
X Y

由于是在报表中用,所以不使用union联接。
...全文
77 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
bingobird 2003-01-07
  • 打赏
  • 举报
回复
由于在汇总中存在按类型分组,但我使用的数据库又不支持case,有无其它方法?
bingobird 2003-01-06
  • 打赏
  • 举报
回复
在线等待中。。。
bingobird 2003-01-06
  • 打赏
  • 举报
回复
to XLYT(雨田):
由于是用在报表中,使用group会产生两条记录,但希望产生的是在一条记录中取得两个结果。
XLYT 2003-01-06
  • 打赏
  • 举报
回复
select flag,sum(money) from tpay group by flag
bingobird 2003-01-06
  • 打赏
  • 举报
回复
多谢各位,有没有不使用case的办法?比如说使用JOIN?

另:hjhing(winding)所说的第二条好像不能被执行?
happydreamer 2003-01-06
  • 打赏
  • 举报
回复
实际上就是用case语句进行了行列转换
ben988211 2003-01-06
  • 打赏
  • 举报
回复
同意楼上的
brook_huang 2003-01-06
  • 打赏
  • 举报
回复
select sum(money) as money,flag from tpay
group by flag
hjhing 2003-01-06
  • 打赏
  • 举报
回复
1:
select sum(case when flag=1 then [MONEY] else 0 end) as youXiao,
sum(case when flag=2 then [MONEY] else 0 end) as wuXiao
from tpay


2:
select
(select sum([money]) from tpay where flag=1 ) as youXiao,
(select sum([money]) from tpay where flag=2 ) as wuXiao
CCEO 2003-01-06
  • 打赏
  • 举报
回复
select sum(case when flah=1 then [MONEY] else 0 end) as 有效,
sum(case when flah=2 then [MONEY] else 0 end) as 失效
from tpay

34,837

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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