2014-08-29 75 views
0

我有一個SQL查詢什麼應該返回4行。但它只是返回3行..錯誤在SQL-Syntax..Showing的僅有3而不是4行

我的表是這樣看: http://i.stack.imgur.com/10bog.png http://i.stack.imgur.com/8BuvD.png

這裏是我的語法:

SELECT gruppe 
FROM gruppen 
WHERE gruppe LIKE '%Vormittag%' 
AND gruppe_id NOT IN (SELECT gruppe_id 
         FROM daten 
         GROUP BY gruppe_id 
         HAVING COUNT(gruppe_id) >= 15) 
ORDER BY gruppe ASC; 

我應該得到4 Groups..But的名單,我只是得到這個3:

"Gruppe 2 | Vormittag" 

"Gruppe 3 | Vormittag" 

"Gruppe 4 | Vormittag" 

隱藏第一個問題在哪裏?

+1

沒有示例數據,查詢沒有多大幫助 – Mihai 2014-08-29 08:32:35

+0

也許gruppe 1有count> = 15? – DonCallisto 2014-08-29 08:37:31

+0

也許你不應該發佈真實的數據。 – 2014-08-29 08:38:52

回答

-1

嘗試此查詢:

SELECT G.gruppe 
FROM gruppen G 
WHERE G.gruppe LIKE '%Vormittag%' 
    AND G.gruppe_id NOT IN (SELECT D.gruppe_id 
         FROM daten D 
         WHERE D.gruppe_id IS NOT NULL 
         GROUP BY D.gruppe_id 
         HAVING COUNT(D.gruppe_id) >= 15) 
ORDER BY G.gruppe ASC 

我剛添加的別名爲表,以避免相同名稱的列之間的衝突。

取而代之,您的查詢似乎是正確的!

+0

感謝您的回答,但仍然只返回組2,3&4 – 2014-08-29 08:53:23

+0

如果您的表[daten]中沒有條目,則此查詢應返回表的每一行[gruppe]與'Vormittag'的名稱 – 2014-08-29 08:58:12

+0

我更新了我的答案,以包含您標記的解決方案。使用別名仍然是提高可讀性並避免衝突的良好實踐。 – 2014-08-29 09:06:34

2

您應該添加WHERE條款自己內心的選擇:

WHERE gruppe_id IS NOT NULL 

您可以檢查小提琴here

有關該行爲的更多信息,你可以找到here

+0

其工作,謝謝! – 2014-08-29 09:00:08

+0

@BenjaminSchurtenberger沒問題:) – 2014-08-29 09:15:39

相關問題