Вход | Регистрация
 

Посчитать количество строк с уникальным сочетанием Номенклатура-ХарактеристикаНоменклатуры

Посчитать количество строк с уникальным сочетанием Номенклатура-ХарактеристикаНоменклатуры
Я
   mr_K
 
28.07.20 - 11:58
Нужно для документа посчитать количество строк с различающимся сочетанием Номенклатура-ХарактеристикаНоменклатуры в одной из табличных частей.
Даже такой влоб вариант не работает:
ВЫБРАТЬ РАЗЛИЧНЫЕ
    Номенклатура,
    ХарактеристикаНоменклатуры,
    1 КАК Количество,
    Ссылка
ПОМЕСТИТЬ
    ГруппыСтрок    
ИЗ
    Документ.РеализацияТоваровУслуг.Товары
;
ВЫБРАТЬ
    Ссылка,
    СУММА(Количество) КАК Кол
ИЗ
    ГруппыСтрок
СГРУППИРОВАТЬ ПО
        Ссылка
   Fragster
 
1 - 28.07.20 - 12:00
работает
   mr_K
 
2 - 28.07.20 - 12:01
Я больше скажу. Если после первого запроса пустить такой запрос (для документа у которого 3 строки, номенклатура совпадает, характеристики все разные):
ВЫБРАТЬ
    Ссылка,
    Количество КАК Кол
ИЗ
    ГруппыСтрок

- то получим одну строку. В которой Кол будет 1.

А если такой:
ВЫБРАТЬ
    Ссылка,
    Номенклатура,
    ХарактеристикаНоменклатуры,
    Количество КАК Кол
ИЗ
    ГруппыСтрок

- то будет 3 строки. Кол везде 1.

Я ничего не понимаю. Запускаю в консоли отчетов для толстого клиента. Какой-то оптимизатор режет?
   Fragster
 
3 - 28.07.20 - 12:02
(2) тебе надо поспать. даже РАЗЛИЧНЫЕ куда-то потерял.
   mr_K
 
4 - 28.07.20 - 12:04
Первый запрос с РАЗЛИЧНЫМИ общий. Он в (0) После него, выполняю 2 разных запроса из (2)
   H A D G E H O G s
 
5 - 28.07.20 - 12:05
(2) Чет какая-то фантастика.
   H A D G E H O G s
 
6 - 28.07.20 - 12:05
(2) Ну посмотри план запроса фактический, там и будет ответ
   mr_K
 
7 - 28.07.20 - 12:06
(5) Сам не верю).
   mr_K
 
8 - 28.07.20 - 12:11
Может еще как-то извернуться?
   H A D G E H O G s
 
9 - 28.07.20 - 12:14
(8) Ну попробуй через вложенный.
   H A D G E H O G s
 
10 - 28.07.20 - 12:14
Но вещи ты пишешь занятные.
Я бы поглядел на план, потом покурил бы msdn и нашел бы еще какой-нибудь прикол в ms sql.
   mr_K
 
11 - 28.07.20 - 12:16
ВЫБРАТЬ РАЗЛИЧНЫЕ
    Номенклатура,
    ХарактеристикаНоменклатуры,
    1 КАК Количество,
    Ссылка
ПОМЕСТИТЬ
    ГруппыСтрок    
ИЗ
    Документ.РеализацияТоваровУслуг.Товары
;
ВЫБРАТЬ
    ГруппыСтрок1.Ссылка,
    СУММА(ГруппыСтрок1.Количество)
ИЗ
    ГруппыСтрок КАК ГруппыСтрок1 
    ЛЕВОЕ СОЕДИНЕНИЕ ГруппыСтрок КАК ГруппыСтрок2
        ПО ГруппыСтрок1.Номенклатура = ГруппыСтрок2.Номенклатура
        И ГруппыСтрок1.ХарактеристикаНоменклатуры = ГруппыСтрок2.ХарактеристикаНоменклатуры
        И ГруппыСтрок1.Ссылка = ГруппыСтрок2.Ссылка
СГРУППИРОВАТЬ ПО
    ГруппыСтрок1.Ссылка
   mr_K
 
12 - 28.07.20 - 12:16
вот так - работает.
   mr_K
 
13 - 28.07.20 - 12:19
самое смешное в этом, что к SQL у меня доступа нет. Админы за бугром. Так что планы запросов - все мимо меня.) Ищу решение методом тыка.
   Fragster
 
14 - 28.07.20 - 12:20
в (11) уже хуита, дело не в планах запроса. повторю совет (3)
   Fragster
 
15 - 28.07.20 - 12:20
может вообще консоль кривая и исполняет что-то не то

Список тем форума
Рекламное место пустует  Рекламное место пустует
Здесь можно задать вопрос "Как сделать?" и получить кучу ответов, что тебе это делать не надо. Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.