[英]ms access sql - select case when in select subquery
我有一張每人多行的表格,如果標志是肯定的,則需要每人獲得一行和最大分數,以及其他內容(這只是本示例的列的片段)
數據表
人 | qtime | 旗幟 | 分數 |
---|---|---|---|
鮑勃 | 第一季度 | 4 | |
鮑勃 | 季度2 | 不 | 6 |
鮑勃 | 第四季度 | 不 | 3 |
愛麗絲 | 第一季度 | 不 | 4 |
愛麗絲 | 季度2 | 是的 | 7 |
愛麗絲 | 第 3 季 | 是的 | 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.