我有一个每人有多行的表,如果标志为yes,则需要每人获得一行和最大分数,以及其他内容(这只是本例中列的一个片段(
数据表
个人 | qtime | 标志得分 | |
---|---|---|---|
Bob | |||
鲍勃 | quarter2 | 没有 | 6|
鲍勃 | quarter4 | 没有 | 3|
爱丽丝 | quarter1 | 没有 | 4|
爱丽丝 | quarter2 | 是7 | |
爱丽丝 | quarter3 | 是 | 9
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