找不到正确的查询

时间:2013-02-12 16:10:02

标签: sql

抱歉我的英语不好。 我必须检索具有值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

1 个答案:

答案 0 :(得分:0)

我认为您希望使用GROUP BYHAVING

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。

相关问题