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

关于分组判断值是不是一致的sql语句编写

2012-11-06 
关于分组判断值是否一致的sql语句编写我想在mysql中实现如下要求的sql,表a如下:idsettle_idstatuspay_amt0

关于分组判断值是否一致的sql语句编写
我想在mysql中实现如下要求的sql,
表a如下:
id settle_id status pay_amt
01 001 S 500
02 001 S 100
03 001 N 200
04 002 S 900
05 002 S 200

我想查询出相同settle_id下status全部为S的settle_id,如上表应该查出的记录是:002.
请问mysql中应该怎么实现。

[解决办法]

探讨

SQL code
ELECT * FROM [tb] AS t WHERE [status]='S'
AND NOT EXISTS(SELECT 1 FROM tb WHERE [settle_id]=t.[settle_id] AND [status]!=t.[status])

[解决办法]
SQL code
if object_id('tb')is not NULLdrop table tbgocreate table tb(id varchar(100),settle_id varchar(100),status varchar(100),pay_amt varchar(100))insert into tbselect '01','001','S','500' union select '02','001','S','100' unionselect '03','001','N','200' unionselect '04','002','S','900' unionselect '05','002','S','200'--select * from tbSELECT * FROM tb a WHERE status='S'AND NOT EXISTS(SELECT 1 FROM tb WHERE settle_id=a.settle_id AND status<>a.status) /*id    settle_id    status    pay_amt04    002              S          90005    002              S          200*/ 

热点排行