Я пытаюсь это сделать, но это не позволит мне.GROUP BY без определенной колонки
Моя таблица (MSSQL):
+----------+--------+---------------------+----------+-------+------------+ | parentid | okeyno | okeyname | okeydata | recid | okeydouble | +----------+--------+---------------------+----------+-------+------------+ | 1357 | 1 | WINZERKE01_TESTFELD | 123 | 1486 | 0 | | 1360 | 1 | WINZERKE01_TESTFELD | 456 | 1488 | 0 | | 1362 | 1 | WINZERKE01_TESTFELD | 789 | 1492 | 0 | | 1361 | 1 | WINZERKE01_TESTFELD | 789 | 1490 | 0 | | 1358 | 1 | WINZERKE01_TESTFELD | 123 | 1484 | 0 | | 1377 | 1 | WINZERKE01_TESTFELD | 999 | 1485 | 0 | +----------+--------+---------------------+----------+-------+------------+
То, что вы можете видеть, что есть несколько entrys с тем же okeyname. Теперь я хочу только parentid строки, где нет dublicate okeydata.
В этом случае результатом должно быть «1360» и «1377».
Теперь это то, что я пытаюсь сделать:
SELECT parentid FROM objkeys WHERE okeyname = 'WINZERKE01_TESTFELD' GROUP BY okeydata HAVING COUNT(okeydata) = 1
Но она всегда хочет, чтобы я включил ParentID в GROUP BY. Но я не хочу этого. Как я могу решить эту проблему?
Спасибо.
Вы говорите, что вы хотите только ParentID, 1360, так почему вы выбираете все столбцы (*)? – jarlh