抱歉我的英语不好。 我必须检索具有值evalWaarde 3的所有记录,同时它们必须同时属于agLkrid 1,2935和2932。 我知道(1,2932,2935)中的agLkrid不是一个好的解决方案,但我找不到另一个。 所以实际上只有一条记录:WJLUITV015 任何帮助?
选择agClid,aglkrid,evalWaarde FROM agenda2作为JOIN evaluateaties2为e ON a.agclid = e.evalclid和agLkrid = evallkrid WHERE(agSchoolid ='18'和agclid,如'WJLUI%'和agLkrid in(1,2932,2935) 和agDatum> ='2013/01/01'和agDatum< ='2013/02/12'AND(evalWaarde = 3)) agclid,aglkrid,evalWaarde小组
agClid agLkrid evalWaarde WJLUIAT005 1 3 WJLUIBV005 1 3 WJLUIDV010 1 3 WJLUIDV030 1 3 WJLUITV015 1 3 WJLUIBV005 2932 3 WJLUITV015 2932 3 WJLUITV015 2935 3 WJLUITV020 2935 3
答案 0 :(得分:0)
我认为您希望使用GROUP BY
和HAVING
:
SELECT agClid, evalWaarde
FROM agenda2 as a
JOIN evaluaties2 as e
ON a.agclid = e.evalclid and agLkrid = evallkrid
WHERE agSchoolid='18'
and agclid like 'WJLUI%'
and agLkrid in (1,2932,2935)
and agDatum >= '2013/01/01'
and agDatum <= '2013/02/12'
AND evalWaarde = 3
GROUP BY agclid, evalWaarde
HAVING COUNT(DISTINCT agLkrid) = 3
如果该表中的字段存在唯一约束,则您不需要DISTINCT
中的COUNT
。
我不确定JOIN
和其他WHERE
条件 - 我假设这对您有效并且您的问题围绕agLkrid。
这是一个SQL Fiddle,只有一个表返回单个结果。还有那个问题:
SELECT agClid, evalWaarde
FROM agenda2
WHERE agclid like 'WJLUI%'
and agLkrid in (1,2932,2935)
AND evalWaarde = 3
GROUP BY agclid, evalWaarde
HAVING COUNT(DISTINCT agLkrid) = 3
返回WJLUITV015。