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

数据分组查询有关问题求解

2012-01-31 
数据分组查询问题求解表结构如下:FNOFName FJD FMoney1aaJ5001aaJ3001aaD8002bbJ5002bbJ5002bbD8003ccJ500

数据分组查询问题求解
表结构如下:
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
求解;谢谢!

[解决办法]

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

热点排行