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

Запрос. Дублирование значений в разрезе даты

Запрос. Дублирование значений в разрезе даты
Я
   SilverFalconi
 
26.07.19 - 17:27
Здравствуйте! Сделал вот такой запрос:


ВЫБРАТЬ
    ПродажиОбороты.Номенклатура.Артикул КАК Артикул,
    ПродажиОбороты.Номенклатура,
    СРЕДНЕЕ(ПродажиОбороты.СтоимостьОборот) КАК СреднееПродаж,
    КОНЕЦПЕРИОДА(ПродажиОбороты.Период, МЕСЯЦ) КАК КонецПериода,
    ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоНаСкладах
ИЗ
    РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, Месяц, ) КАК ПродажиОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
        ПО ПродажиОбороты.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура

СГРУППИРОВАТЬ ПО
    ПродажиОбороты.Номенклатура.Артикул,
    ПродажиОбороты.Номенклатура,
    ТоварыНаСкладахОстатки.КоличествоОстаток,
    КОНЕЦПЕРИОДА(ПродажиОбороты.Период, МЕСЯЦ)


Но сама номенклатура дублируется в нем, потому что товары продаются в разные месяцы. Наведу пример:
Продажа товара было в прошлом месяце, и в текущем. Соответственно в результате запроса будет 2 записи, по разным месяцам.
Поле периода мне нужно для СКД таблицы, убрать его не могу.

Только учусь, подскажите пожалуйста, как можно избежать этого дублирования?

Результат запроса:
https://ibb.co/RhNwQM6
 
 
   IOANNscrp
 
1 - 26.07.19 - 17:38
Итоги?
   lodger
 
2 - 26.07.19 - 17:39
а по месяцам ты его нарезал просто так или с какой-то целью?
   hhhh
 
3 - 26.07.19 - 17:40
(0) ну она и должна дублироваться, если она встречается в 2х строчках. Значит она должна попасть и туда и туда.
   SilverFalconi
 
4 - 26.07.19 - 17:44
(2) С целью. Вот такой отчет мне нужен. Последняя строка с дублями. Возможно ли их объединить?
https://ibb.co/8K6tfW4
   SilverFalconi
 
5 - 26.07.19 - 17:44
(1) Вы о чем?
   SilverFalconi
 
6 - 26.07.19 - 17:44
(3) Можно ли как то это исправить? Мб средствами СКД?
   lodger
 
7 - 26.07.19 - 17:47
(4) что входит в горизонтальные группировки?
   IOANNscrp
 
8 - 26.07.19 - 17:49
(6) в скд вкладка "Ресурсы" заполнена?
   azernot
 
9 - 26.07.19 - 17:49
Помесячные продажи и остатки на сейчас?
Убери количество остаток из агрегирующих полей и используй для него минимум или максимум.
   IOANNscrp
 
10 - 26.07.19 - 17:51
и КоличествоНаСкладах в суммируемые поля добавь
   SilverFalconi
 
11 - 26.07.19 - 17:53
   SilverFalconi
 
12 - 26.07.19 - 17:58
(8) Заполнена. (10) Добавил, вот только это ничего не поменяло.
   SilverFalconi
 
13 - 26.07.19 - 17:59
(9) Немного не понял. Это поможет решить проблему с дублями?
   SilverFalconi
 
14 - 26.07.19 - 18:01
Мне нужно сохранить такой отчет, какой у меня есть сейчас на скрине (4). Нужно только убрать дубли, которые выбираются запросом.
   IOANNscrp
 
15 - 26.07.19 - 18:05
запрос еще раз, и вкладку ресурсы
   SilverFalconi
 
16 - 26.07.19 - 18:08
ВЫБРАТЬ
    ПродажиОбороты.Номенклатура.Артикул КАК Артикул,
    ПродажиОбороты.Номенклатура,
    СРЕДНЕЕ(ПродажиОбороты.СтоимостьОборот) КАК СреднееПродаж,
    ПродажиОбороты.Период КАК НачалоПериода,
    КОНЕЦПЕРИОДА(ПродажиОбороты.Период, МЕСЯЦ) КАК КонецПериода,
    ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоНаСкладах
ИЗ
    РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, Месяц, ) КАК ПродажиОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
        ПО ПродажиОбороты.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура

СГРУППИРОВАТЬ ПО
    ПродажиОбороты.Номенклатура.Артикул,
    ПродажиОбороты.Номенклатура,
    ПродажиОбороты.Период,
    ТоварыНаСкладахОстатки.КоличествоОстаток
   SilverFalconi
 
17 - 26.07.19 - 18:10
Ресурсы:
https://ibb.co/h7dQrsQ
Вычисляемые поля:
https://ibb.co/BVQjqQH
   IOANNscrp
 
18 - 26.07.19 - 18:11
В запросе, где ты раскидываешь поля для группировки, у тебя количество на складах попрежнему не в суммируемых полях
СУММА(КоличествоНаСкладах)
   IOANNscrp
 
19 - 26.07.19 - 18:12
Вычисляемые не нужны вроде совсем
   Консультант Баранов
 
20 - 26.07.19 - 18:36
ВЫБРАТЬ
    ПродажиОбороты.Номенклатура,
    СРЕДНЕЕ(ПродажиОбороты.СтоимостьОборот) КАК СреднееПродаж,
    КОНЕЦПЕРИОДА(ПродажиОбороты.Период, МЕСЯЦ) КАК КонецПериода,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ КОНЕЦПЕРИОДА(ПродажиОбороты.Период, МЕСЯЦ)) КАК КоличествоМесяцев
ПОМЕСТИТЬ втОбороты
ИЗ
    РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, Месяц, ) КАК ПродажиОбороты

СГРУППИРОВАТЬ ПО
    ПродажиОбороты.Номенклатура,
    КОНЕЦПЕРИОДА(ПродажиОбороты.Период, МЕСЯЦ)
;

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

ВЫБРАТЬ
    ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоНаСкладах,
    ТоварыНаСкладахОстатки.Номенклатура
ПОМЕСТИТЬ втОстатки
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(
            ,
            Номенклатура В
                (ВЫБРАТЬ
                    втОбороты.Номенклатура
                ИЗ
                    втОбороты КАК втОбороты)) КАК ТоварыНаСкладахОстатки

СГРУППИРОВАТЬ ПО
    ТоварыНаСкладахОстатки.КоличествоОстаток,
    ТоварыНаСкладахОстатки.Номенклатура
;

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

ВЫБРАТЬ
    втОбороты.Номенклатура,
    втОбороты.СреднееПродаж,
    втОбороты.КонецПериода,
    втОбороты.КоличествоМесяцев,
    втОстатки.КоличествоНаСкладах / втОбороты.КоличествоМесяцев КАК КоличествоНаСкладах,
    втОбороты.Номенклатура.Артикул
ИЗ
    втОбороты КАК втОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ втОстатки КАК втОстатки
        ПО втОбороты.Номенклатура = втОстатки.Номенклатура
   Консультант Баранов
 
21 - 26.07.19 - 18:40
ВЫБРАТЬ
    ПродажиОбороты.Номенклатура,
    СРЕДНЕЕ(ПродажиОбороты.СтоимостьОборот) КАК СреднееПродаж,
    КОНЕЦПЕРИОДА(ПродажиОбороты.Период, МЕСЯЦ) КАК КонецПериода
ПОМЕСТИТЬ втОбороты
ИЗ
    РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, Месяц, ) КАК ПродажиОбороты

СГРУППИРОВАТЬ ПО
    ПродажиОбороты.Номенклатура,
    КОНЕЦПЕРИОДА(ПродажиОбороты.Период, МЕСЯЦ)
;

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

ВЫБРАТЬ
    втОбороты.Номенклатура,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ втОбороты.КонецПериода) КАК КоличествоМесяцев
ПОМЕСТИТЬ втКолМесяцев
ИЗ
    втОбороты КАК втОбороты

СГРУППИРОВАТЬ ПО
    втОбороты.Номенклатура
;

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

ВЫБРАТЬ
    СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток) КАК КоличествоНаСкладах,
    ТоварыНаСкладахОстатки.Номенклатура
ПОМЕСТИТЬ втОстатки
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(
            ,
            Номенклатура В
                (ВЫБРАТЬ
                    втОбороты.Номенклатура
                ИЗ
                    втОбороты КАК втОбороты)) КАК ТоварыНаСкладахОстатки

СГРУППИРОВАТЬ ПО
    ТоварыНаСкладахОстатки.Номенклатура
;

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

ВЫБРАТЬ
    втОбороты.Номенклатура,
    втОбороты.СреднееПродаж,
    втОбороты.КонецПериода,
    втОбороты.Номенклатура.Артикул,
    ЕСТЬNULL(втОстатки.КоличествоНаСкладах, 0) / втКолМесяцев.КоличествоМесяцев КАК КоличествоНаСкладах
ИЗ
    втОбороты КАК втОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ втОстатки КАК втОстатки
        ПО втОбороты.Номенклатура = втОстатки.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ втКолМесяцев КАК втКолМесяцев
        ПО втОбороты.Номенклатура = втКолМесяцев.Номенклатура
   SilverFalconi
 
22 - 27.07.19 - 16:23
(21) амм, тут много вложенных запросов, но они делают точно то же что и мой. Выбирают с дублями. Или я что то не понимаю?
   Консультант Баранов
 
23 - 27.07.19 - 18:46
(22) ЕСТЬNULL(втОстатки.КоличествоНаСкладах, 0) / втКолМесяцев.КоличествоМесяцев КАК КоличествоНаСкладах
   SilverFalconi
 
24 - 29.07.19 - 11:23
(23) я вас не понимаю...
   SilverFalconi
 
25 - 29.07.19 - 12:24
ап, проблема не решена. Помогите пожалуйста
   lodger
 
26 - 29.07.19 - 12:31
вернемся к (11) 

убери из "Поля группировки" все кроме артикул и номенклатура.
   SilverFalconi
 
27 - 29.07.19 - 12:56
(26) оуууу, вот это да...
Дубли пропали. За это большое спасибо!
Но теперь возникает вопрос, как вывести нужные мне колонки, где то здесь(отмечено красным):
https://ibb.co/3Ffby0J
   SilverFalconi
 
28 - 29.07.19 - 13:02
Нужно вывести количество остатков(регистр остатков, связан по номенклатуре), среднее продаж (СРЕДНЕЕ из запроса), и остатки в месяцах (Вычисляемое поле, количество/среднее продаж). Они все связаны по номенклатуре, и вставлять их под каждый месяц не нужно. Просто, как на скрине выше, разместить в строку с номенклатурой. Это возможно?
   lodger
 
29 - 29.07.19 - 15:13
(28) закинь их в ресурсы, но настрой по каким группировкам считать. выбери там номенклатуру+артикул.
   SilverFalconi
 
30 - 29.07.19 - 16:31
(29) Не работает((
Попробовал просто с артикулом, результат тот же:
https://ibb.co/2Zv2RL3 - отчет
https://ibb.co/87vJKQM - группировки
https://ibb.co/KL8Ksk5 - ресурсы
 
 Рекламное место пустует
   SilverFalconi
 
31 - 29.07.19 - 16:33
Насколько я понял, для отображения этих строк, нужно добавить их в "Поля группировки", но там нельзя использовать ресурсы. Вот мои:
https://ibb.co/NFz8TDn
   SilverFalconi
 
32 - 30.07.19 - 10:07
Проблема решена, ВСЕМ БОЛЬШОЕ СПАСИБО!
Отдельно спасибо lodger'у, за его (26) ответ.
Добавил строки вот таким образом, сработало так как нужно:
https://ibb.co/YDrqDLn - группировка
https://ibb.co/LhW435m - результат отчета


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