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

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

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

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

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