如何解决ms access sql - 在选择子查询中选择大小写
我有一个每人多行的表格,如果标志为是,则需要获得每人一行和最大分数,以及其他内容(这只是此示例的列的片段)
数据表
人 | qtime | 标志 | 得分 |
---|---|---|---|
鲍勃 | 第一季度 | 4 | |
鲍勃 | 第二季度 | 没有 | 6 |
鲍勃 | 第四季度 | 没有 | 3 |
爱丽丝 | 第一季度 | 没有 | 4 |
爱丽丝 | 第二季度 | 是的 | 7 |
爱丽丝 | 第三季度 | 是的 | 9 |
select
person,max(score) as maxscore,case
when person in (select person from data where flag = 'yes')
then 1
else 0
end as flagYes
from
data
group by
person
这在 Microsoft sql 服务器中可以正常工作,但在 MS Access sql 中我得到
我可以在子查询中使用别名,如果这会让事情感觉不会引起问题,但它们不会使查询摆脱这个错误。
解决方法
MS Access 不支持 case
表达式。您可以改用 IIF()
:
select d.person,max(d.score) as maxScore,iif(d.person in (select d2.person from data as d2 where d2.flag = 'yes'),1,0) as flagYes
from data as d
group by person
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。