Прямой запрос - группировка по Case #751965


#0 by Mary01
Как правильно сделать группировку по полю, полученному с помощью CASE? Пишу: Ошибка - Недопустимое имя столбца "ВидКонтр". Как правильно сделать?
#1 by igork1966
Ну перенеси туда case
#2 by igork1966
+ GROUP BY CASE WHEN LEFT($Контрагенты.ЮрФизЛицо,4) = '  DP' THEN  'ЮрЛица' ELSE  'ФизЛица' END, $Рег.Покупатель, $Рег.Номенклатура
#3 by Попытка1С
Правильнее обернуть в подзапрос.
#4 by Mary01
вначале тоже хотела так сделать, но подумала что это будет неправильно, т.к. получается, что выражение будет вычисляться дважды. но ладно, сделала как вы написали, больше той ошибки нет. теперь ругается на другое: я не использовала в группировке IDDoc. Но мне не нужна по нему группировка, и убрать из Select его нельзя. как тогда?
#5 by igork1966
ты плохо думаешь об MS SQL
#6 by igork1966
"теперь ругается на другое: я не использовала в группировке IDDoc" при группировке поля не включенные в группировку могут только в агрегатах быть
#7 by igork1966
и это логично, поскольку в рамках ключа определенного GROUP BY эти поля множество (значений)
#8 by igork1966
+ если конечно ты не путаешь группировку с итогами... тогда смотри ROLLUP
#9 by Mary01
да, мне нужны итоги по группировкам
#10 by Mary01
Сделала Рег.IDDoc with rollup - ок, но теперь то же самое с Жур.IDDocDef - я не включила его в группировку. "with rollup" написала после Жур.IDDocDef, но получилось два rollup в строке группировки - не прокатило. попробовала из : (Рег.IDDoc, Жур.IDDocDef) with rollup, тоже не прокатило: ошибка "Конструкции группирования CUBE и ROLLUP недопустимы в текущем режиме совместимости.  Они допускаются только в режиме 100 и выше"
#11 by Mary01
то есть, rollup(Рег.IDDoc, Жур.IDDocDef), конечно же
#12 by Serginio1
У тебя какой SQL стоит?
#13 by Mary01
2012 или 2014 не помню точно... пока не могу посмотреть.
#14 by Serginio1
А режим совместимости случайно не 2000
#15 by Mary01
где это посмотреть?
#16 by Serginio1
Почиай
#17 by Serginio1
#18 by Mary01
ок, где смотреть поняла, но на сервер попасть не могу пока.
#19 by Serginio1
Ну судя по сообщени у тебя стоит режим совместимости с 2000
#20 by Mary01
Проблему решила вложенным запросом. Выбрала в верхнем запросе из вложенного только нужные поля и сгруппировала по ним (с применением with rollup), к числовым полям применила агрегат sum, и в итоге наконец ПОЛУЧИЛА то, что нужно было!!!
#21 by Попытка1С
Я тебе это писал еще
#22 by Mary01
я тогда хотела обойтись без этого, т.к. проблема была только в группировке по Case, и это получилось решить без вложенного запроса. но потом поняла, что лучше с вложенным запросом, т.к. возникла ошибка из-за того, что я группирую не по всем полям.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С