2015-11-19 1 views
1

Я немного ударил головой о стену.Sum Booleans, а затем отображать только определенное количество

У меня есть таблица, которая имеет DwgID (integer) и Current (boolean) в качестве части таблицы.

Что я хочу сделать, это фильтр только DwgID, который имеет более 1 Current.

Этот код дает мне количество правильно:

`SELECT "DwgID", SUM(CASE WHEN "Current" = 1 THEN 1 ELSE 0 END) "Current" FROM "tblRev" GROUP BY "DwgID"` 

Но если я пытаюсь добавить критерии, где Current Count is > 1, он терпит неудачу с содержанием данных не может быть загружен.

`SELECT "DwgID", SUM(CASE WHEN "Current" = 1 THEN 1 ELSE 0 END) "Current" FROM "tblRev" GROUP BY "DwgID" HAVING ((SUM(CASE WHEN "Current" = 1 THEN 1 ELSE 0 END) > 1))` 

Что я делаю неправильно?

+0

Пожалуйста, отформатируйте свой код до 4 пробелов перед линией кода –

ответ

0

Вам нужно выбрать другой псевдоним, потому что Current - это имя столбца. Назовем это NumCurrent.

SELECT "DwgID", SUM(CASE WHEN "Current" = 1 THEN 1 ELSE 0 END) "NumCurrent" FROM "tblRev" GROUP BY "DwgID" HAVING ((SUM(CASE WHEN "Current" = 1 THEN 1 ELSE 0 END) > 1)) 
+0

Спасибо. Именно то, что я искал. Я знал, что это было что-то глупое, что я делал :) –

Смежные вопросы