|
Прямой запрос, группировка
|
Я
|
|
Mary01 03.02.18 - 19:57 | Всем добрый вечер!
подскажите пожалуйста, как в SQL-запросе можно делать группировку по текстовому полю?
Есть прямой запрос, который упрощенно можно показать как:
|SELECT top 5
|'t' as тест,
|Номенклатура.ID as [Номенклатура $Справочник.Номенклатура]
|FROM
|$Справочник.Номенклатура Номенклатура (nolock)
|GROUP BY
|тест,
|Номенклатура.ID"
Выдает ошибку: Недопустимое имя столбца "тест". |
vicof 1 - 03.02.18 - 20:53 | Ну а чуть-чуть напрячь извилины и подумать?
|
Mary01 2 - 03.02.18 - 21:02 | ( 1) если сделать
...
|GROUP BY
|'t',
|Номенклатура.ID"
то ошибка - Каждое выражение GROUP BY должно содержать по меньшей мере одну ссылку на столбец. |
vicof 3 - 03.02.18 - 23:10 | as test
|
vicof 4 - 03.02.18 - 23:10 | group by test
|
Mary01 5 - 03.02.18 - 23:14 | ( 4) Недопустимое имя столбца "test" ) |
youalex 6 - 03.02.18 - 23:18 | by 't'
|
Mary01 7 - 03.02.18 - 23:19 | ( 6) так делала, написала в ( 2) |
youalex 8 - 03.02.18 - 23:25 | а зачем вообще, |GROUP BY
|'t',
если это литерал? Напишите select distinct |
youalex 9 - 03.02.18 - 23:26 | Или исключите его из секции GROUP BY. Зачем вы его туда запихали?
|
youalex 10 - 03.02.18 - 23:28 | Проверил в квери скуля. на "select 5 group by 5" выдало похожее сообщение, что, наверное, логично.
Рекламное место пустует |
Mary01 11 - 03.02.18 - 23:47 | ( 9) и правда.. зачем. убрала. вот все и решилось)) |
vicof 12 - 03.02.18 - 23:58 | А кавычки обязательно, да?
|
Mary01 13 - 04.02.18 - 00:04 | ( 12) да, т.к. это не название колонки, а текст, вместо t могло быть любое слово |
vicof 14 - 04.02.18 - 00:21 | |SELECT top 5
|'t' as test,
|Номенклатура.ID as [Номенклатура $Справочник.Номенклатура]
|FROM
|$Справочник.Номенклатура Номенклатура (nolock)
|GROUP BY
|test,
|Номенклатура.ID"
не? |
youalex 15 - 04.02.18 - 00:27 | ( 14) test - это как бы вообще, псевдоним. Он играет сильно после group |
Fram 16 - 04.02.18 - 00:28 | ( 14) не будет такая конструкция работать. в GROUP BY должно содержать по меньшей мере одну ссылку на столбец. что в принципе в ( 2) уже написано |
Mary01 17 - 04.02.18 - 00:48 | ( 14) так делала, в ( 5) написала ошибку |
vicof 18 - 04.02.18 - 01:12 | ВЫБРАТЬ
5 КАК Тест,
&Номенклатура
СГРУППИРОВАТЬ ПО
5,
&Номенклатура
Ну вот так у меня работает |
runoff_runoff 19 - 04.02.18 - 01:19 | за группировку по константе и группировку по праймери-ключу не предлагали ещё расстреливать на месте? ;-)
|
vicof 20 - 04.02.18 - 02:19 | ( 19) Это тест был, не переживай) |
youalex 21 - 04.02.18 - 02:35 | ( 19) Это не константа, а литерал. И за группировку по ключу *при наличиии отсутствия джойнов и прочего - расстреливать точно не стоит. Максимум - немного пожурить. |