我有以下查询,它不起作用:
SELECT
d1.*, iif(d1.PK = MIN(d2.PK), "Si", "No")
FROM
demo AS d1
LEFT JOIN
(SELECT d3.PK, d3.place, d3.date
FROM
demo AS d3
WHERE
d3.place=d1.place AND d3.date=d1.date AND d1.type="type1") AS d2
ON
d2.place=d1.place AND d2.date=d1.date
关键是用“Si”标记演示表中具有混凝土类型的第一行,并且在相同的位置/日期,具有相同值的其他行应标记为“否”。似乎子查询无法识别de“d1”名称以正确同步,如果我证明将“d1”值更改为常量那么就存在关于PK和我不理解的聚合函数的错误。
抱歉,如果显而易见,但SQL不是我最强的观点。谢谢你的帮助:)
答案 0 :(得分:0)
改为使用相关子查询:
select d.*,
iif(d.pk = (select min(d2.pk)
from demo as d2
where d2.place = d1.place and d2.date = d1.date and d2.type = "type1"),
"Si", "No")
from demo as d;