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


1С:Предприятие :: 1С:Предприятие 8 общая

запрос с группировкой и условием

запрос с группировкой и условием
Я
   virdim
 
13.12.18 - 16:15
Привествую всех! Нуб в запросах, поэтому обращаюсь к гуру. Какой лучший способ сгруппировать таблицу запросом. Имеем следующую таблицу

  Товар |магазин |Тип цен|подразделение
1.товар1|магазин1|тц1    |пс
2.товар2|магазин1|тц1    |пс
3.товар2|магазин1|тц2    |подразделение1

Как сгруппировать 2 и 3 строки чтобы осталось только та строка, у которой подразделение не пустая ссылка?
 
 
   Ненавижу 1С
 
1 - 13.12.18 - 16:16
группировать не надо, надо:

ГДЕ Подразделение<>&ПустаяСсылка
   Дмитрий
 
2 - 13.12.18 - 16:17
так сгруппировать или отобрать строки с непустым подразделением?
   mikecool
 
3 - 13.12.18 - 16:17
сгруппировать по 
Имеющие количество(Товар) = 1 Или количество(Товар)>1 и Не Максимум(подразделение1 ) = Значение(Пустаяссылка)
   virdim
 
4 - 13.12.18 - 16:31
(1) Тогда условие уберет строку 1 
(2) Сгруппировать, т.е. наличие подразделение как бы имеет больший приоритет в одинаковых строках
(3) Эм, а разьве так будет работать? Оно же не сгруппируется чтобы услови в имеющиеся отработало? количество(Товар) всегда будет 1.
   dka80
 
5 - 13.12.18 - 16:40
Выбрать
Товар,Магазин,Подразделение,Количество
Из Источник
Сгруппировать
Максимум(Подразделение),
Сумма(Количество)
По
Товар, Магазин
   virdim
 
6 - 13.12.18 - 16:44
(5) ты наверное перепутал сгруппировать с итогами и у меня нет количества
   Alexandr_U1982
 
7 - 13.12.18 - 16:46
ВЫБРАТЬ
    Источник.Товар КАК Товар,
    Источник.Магазин КАК Магазин,
    МАКСИМУМ(Источник.Подразделение) КАК Подразделение
ИЗ
    Источник КАК Источник
    
СГРУППИРОВАТЬ ПО
    Источник.Товар,
    Источник.Магазин
   dezss
 
8 - 13.12.18 - 16:47
Лучше группировать и максимум по подразделению, но тип цен исключить
   virdim
 
9 - 13.12.18 - 16:55
(7) А тип цен куда? А кстати, если сделать максимум(типцен) в дополнении к максимум(подразделение) будет правильно работать? На моем примере работает, но я не уверен что это правильно. (8) А как его потом подцепить?
   Alexandr_U1982
 
10 - 13.12.18 - 16:59
(9)Если сделать максимум(типцен) то не будет правильно работать. ТипЦен нужно подцепить левым соединением.
 
 Рекламное место пустует
   dezss
 
11 - 13.12.18 - 17:00
(9) Да даже максимум по подразделению не всегда будет корректно работать, нужно уточнять условия.
Если есть 2 разных подразделения, но с одинаковыми остальными полями, они должны остаться?
   Alexandr_U1982
 
12 - 13.12.18 - 17:01
ВЫБРАТЬ
    Источник.Товар КАК Товар,
    Источник.Магазин КАК Магазин,
    МАКСИМУМ(Источник.Подразделение) КАК Подразделение
ПОМЕСТИТЬ ВТДанные
ИЗ
    Источник КАК Источник
    
СГРУППИРОВАТЬ ПО
    Источник.Товар,
    Источник.Магазин
;

////////////////////////////////////////////////////

ВЫБРАТЬ
    ВТДанные.Товар КАК Товар,
    ВТДанные.Магазин КАК Магазин,
    ВТДанные.Подразделение КАК Подразделение,
    Источник.ТипЦен
ИЗ
    ВТДанные КАК ВТДанные
        ЛЕВОЕ СОЕДИНЕНИЕ Источник КАК Источник
        ПО ВТДанные.Товар = Источник.Товар
            И ВТДанные.Магазин = Источник.Магазин
            И ВТДанные.Подразделение = Источник.Подразделение
   virdim
 
13 - 13.12.18 - 17:31
(11) По условиям 2 разных не должно быть, только либо есть, либо нет.
(12) Да, хороший вариант. Только я забыл ещё про одно условие: размер этой таблицы получается более чем 2кк строк и хотелось бы избежать помещения этой таблицы во временную.
   xXeNoNx
 
14 - 13.12.18 - 19:14
(13) да не только это забыл..., структуру хранения данных не хочешь рассказать?
   xXeNoNx
 
15 - 13.12.18 - 19:16
(12) количествоЗаписей = номенклатура * магазин * подразделение. Кошерно?
   xXeNoNx
 
16 - 13.12.18 - 19:19
(15) предлагаю еще проиндексировать, шоб наверняка
   Alexandr_U1982
 
17 - 13.12.18 - 19:57
(15) ХЗ, я не еврей
   Alexandr_U1982
 
18 - 13.12.18 - 19:59
(16) Во-первых в (0) ничего не было сказано про 2 млн. записей.
Во-вторых, раз критикуешь, предложи свой вариант.
   virdim
 
19 - 14.12.18 - 09:08
(14) Структура следующая
1. справочник номенклатура
2. справочник магазины, включает подразделение и ТЦ
3. Некая таблица в которой содержаться: Исходный ТЦ, Новый ТЦ и подразделение. В ней может быть строка с одинаковым Исходным ТЦ как подразделением так и без.

1 и 2 соединяюся полным соединением. Получается чуть больше 2млн. строк. К этой таблице левым таблица 3 соединяется по Исходному ТЦ и Подразделению.
   Alexandr_U1982
 
20 - 14.12.18 - 10:15
(19)Напиши сюда запрос
   Alexandr_U1982
 
21 - 14.12.18 - 10:30
(19)Помимо Исходного ТЦ, Нового ТЦ и Подразделения, что еще содержится в некой таблице? Откуда берется эта таблица?
   virdim
 
22 - 14.12.18 - 12:25
(21) Нашёл решение. Разделил таблицу 3 из (19) на две таблицы, одна с пустым подразделением, другая нет. Далее сделал два левых соединений и выбрал естьnull(табСподразделениями.типЦен, табБезподразделениями.типЦен)


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