Рейтинг:
2
OriginalGriff
Проблема в том, что когда у вас есть кратные числа, вы должны решить для SQL, какую строку возвращать - он не знает, хотите ли вы, чтобы "Цетиризин" был "Аллерзет 10 мг" или "Алникс 10 мг", и он ненавидит выбрасывать информацию.
Вы можете выбрать первый или последний вариант:
SELECT MIN(ID) FROM ItemMasterlistTable GROUP BY [Generic Name] HAVING [Generic Name] IS NOT NULL
SELECT MAX(ID) FROM ItemMasterlistTable GROUP BY [Generic Name] HAVING [Generic Name] IS NOT NULL
А затем используйте JOIN для получения нужной информации:
SELECT g.ID, i.[Generic Name], i.Description
FROM (SELECT MIN(ID) as ID
FROM ItemMasterlistTable
GROUP BY [Generic Name]
HAVING [Generic Name] IS NOT NULL) g
JOIN ItemMasterlistTable i
ON g.ID = i.ID
JKwaaan
Я обновил свой sql-запрос. Я не знаю, повлияет ли это на что-нибудь.
Без использования JOIN я все еще могу это сделать? Приведенные выше данные взяты только из 1 таблицы. Почти все образцы, которые я вижу, когда ищу помощь, предлагают присоединиться.
OriginalGriff
Это потому, что соединение-это правильный способ сделать это: SQL понимает соединения и может делать их очень, очень эффективно. Альтернативой является создание и заполнение временной таблицы и ее использование, но это действительно неприятно в лучшие времена.
Поскольку вам нужно GROUP BY, чтобы "собрать" строки в "пучки", а GROUP BY может работать только с агрегированными данными (SQL не любит принимать решения о том, какую строку использовать для вас, помните), вам нужно использовать подзапрос GROUP BY, чтобы выбрать уникальные идентификаторы строк, которые вы хотите использовать, а затем объединить эти данные обратно в исходную таблицу, чтобы получить фактические данные строки. С ним довольно просто работать, как только вы придете в себя!
0x01AA
Чего мне не хватает? Разве это не просто решить с помощью SELECT DISTINCT [Generic Name] FROM ItemMasterlistTable WHERE NOT [Generic Name] IS NULL
?
Рейтинг:
1
kirthiga S
select [Generic Name] from Table where isnull([Generic Name],'')<>'' group by [Generic Name]
CHill60
Все, что вы сделали, это скопировали код из чужого комментария, настроили обработку null, предположив, что blank не требуется, а затем добавили совершенно ненужную "группу по"