数据分组查询问题求解

java_mi 2011-10-14 09:59:25
表结构如下:
FNO FName FJD FMoney
1 aa J 500
1 aa J 300
1 aa D 800
2 bb J 500
2 bb J 500
2 bb D 800
3 cc J 500
3 cc D 300

根据每组数据的J和D来判断金额是否持平;将J,D不持平的组数据查询出来,希望结果是:
2 bb J 500
2 bb J 500
2 bb D 800
3 cc J 500
3 cc D 300
求解;谢谢!
...全文
77 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaobn_cn 2011-10-14
  • 打赏
  • 举报
回复

with T as (
select 1 FNO, 'aa' FName, 'J' FJD, 500 FMoney From dual union all
select 1, 'aa', 'J', 300 From dual union all
select 1, 'aa', 'D', 800 From dual union all
select 2, 'bb', 'J', 500 From dual union all
select 2, 'bb', 'J', 500 From dual union all
select 2, 'bb', 'D', 800 From dual union all
select 3, 'cc', 'J', 500 From dual union all
select 3, 'cc', 'D', 300 From dual)
SELECT *
FROM T
WHERE T.FNO IN
(SELECT FNO
FROM (select FNO,DECODE(FJD,'J',FMoney,FMoney * -1) FMoney2 from T)
GROUP BY FNO
HAVING SUM(FMoney2) <> 0);

java_mi 2011-10-14
  • 打赏
  • 举报
回复
多谢一楼!~

3,499

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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