VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 962|回复: 3

請教一条SQL语句?

[复制链接]

1

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-10-16 11:00:01 | 显示全部楼层 |阅读模式
表A:
id   ratey
001   Y
001   N
002   Y
002   Y
003   N
003   N
表B:
id   ratey
001   N
002   Y
003   N
如何用一条SQL语句得到表B(按id分组,只要有某ratey为‘N’,则此id对应的ratey=’N’)?急!
回复

使用道具 举报

0

主题

114

帖子

69.00

积分

新手上路

Rank: 1

积分
69.00
发表于 2020-10-16 11:15:01 | 显示全部楼层
select top 1 * from tablename group by id order by ratey
回复

使用道具 举报

0

主题

114

帖子

69.00

积分

新手上路

Rank: 1

积分
69.00
发表于 2020-10-16 11:45:01 | 显示全部楼层
declare @a table(id char(10),ratey char(10))
insert into @a select '001','Y' UNION ALL
SELECT '001','N' UNION ALL
SELECT '002','Y' UNION ALL
SELECT '002','Y' UNION ALL
SELECT '003','N' UNION ALL
SELECT '003','N'
select id,min(ratey) as ratey from @a group by id
结果:
id         ratey      
---------- ----------
001        N         
002        Y         
003        N         

(所影响的行数为 3 行)
回复

使用道具 举报

0

主题

9

帖子

9.00

积分

新手上路

Rank: 1

积分
9.00
发表于 2020-10-16 12:00:02 | 显示全部楼层
insert into @t
select '001',   'Y'
union all
select '001',   'N'
union all
select '002',   'Y'
union all
select '002',   'Y'
union all
select '003',   'N'
union all
select '003',   'N'
select * from @t

select distinct id,ratey=case when (select count(1) from @t where id=t.id and ratey='N')>0 then 'N' else ratey end
from @t t
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表