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

Помогите с запросом

Помогите с запросом
Я
   AnisaL
 
03.03.21 - 16:34
Добрый день!
Почему такой запрос задваивает строки и почему в результат март вошел, хотя в параметрах указываю февраль?

ВЫБРАТЬ
    ЗаданияНаРаботу.Контрагент КАК Контрагент,
    ЗаданияНаРаботу.Регистратор КАК Регистратор
ИЗ
    РегистрНакопления.ЗаданияНаРаботу КАК ЗаданияНаРаботу
ГДЕ
    ЗаданияНаРаботу.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
    И ВЫБОР
            КОГДА &Контрагент <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
                ТОГДА ЗаданияНаРаботу.Контрагент = &Контрагент
            ИНАЧЕ ИСТИНА
        КОНЕЦ
АВТОУПОРЯДОЧИВАНИЕ
   Beduin
 
1 - 03.03.21 - 16:36
(0) А ты сами записи регистра смотрела вначале?
   AnisaL
 
2 - 03.03.21 - 16:37
   dka80
 
3 - 03.03.21 - 16:37
Выложи скрин регистра с отбором по этому контрагенту
   dka80
 
4 - 03.03.21 - 16:38
(2)

ВЫБРАТЬ
    *
ИЗ
    РегистрНакопления.ЗаданияНаРаботу КАК ЗаданияНаРаботу
ГДЕ
    ЗаданияНаРаботу.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
    И ВЫБОР
            КОГДА &Контрагент <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
                ТОГДА ЗаданияНаРаботу.Контрагент = &Контрагент
            ИНАЧЕ ИСТИНА
        КОНЕЦ
АВТОУПОРЯДОЧИВАНИЕ
   Beduin
 
5 - 03.03.21 - 16:38
Вангую регистратор пишет не в свой период.
   PR
 
6 - 03.03.21 - 16:39
(2) Так а ты выбери в полях еще период, увидишь много интересного
   AnisaL
 
7 - 03.03.21 - 16:41
   Beduin
 
8 - 03.03.21 - 16:43
(7) Тебя не смущает, что учет времени 58 от марта пишет в февраль?
   dka80
 
9 - 03.03.21 - 16:43
(7) блин, у меня глаза вытекли - в следующий раз еще мельче сделай

а теперь посмотри дату документа и период, в который он записал
   AnisaL
 
10 - 03.03.21 - 16:48
(9) да, документ от 02.03.21 а пишет за февраль
   AnisaL
 
11 - 03.03.21 - 16:49
(9) вот такой запрос мне нужно получить, только чтобы он не задваивал, как его правильно сделать?

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

СГРУППИРОВАТЬ ПО
    ЗаданияНаРаботу.Контрагент,
    ЗаданияНаРаботу.Организация
АВТОУПОРЯДОЧИВАНИЕ
   Beduin
 
12 - 03.03.21 - 16:51
(11) Этот не будет задваивать.
   AnisaL
 
13 - 03.03.21 - 16:52
(12) он увеличивает в 4 раза сумму
   AnisaL
 
14 - 03.03.21 - 16:53
(12) https://a.radikal.ru/a09/2103/5c/4fac269cd113.jpg вот какой результат, а должно быть 20058
   Beduin
 
15 - 03.03.21 - 16:53
(13) Но строки не задваивает же.
МАКСИМУМ поставь вместо СУММА
   Kassern
 
16 - 03.03.21 - 16:54
(15) это как пластырем пробоину на корабле заклеивать)
   AnisaL
 
17 - 03.03.21 - 16:55
(15) строки не задваивает, но сумму увеличивает в 4 раза
   dka80
 
18 - 03.03.21 - 16:55
(11) если у тебя в регистре все верно, а судя-по-всему у тебя там все же ошибка, т.к. один регистратор делает две записи под разными строками, тогда так:
ВЫБРАТЬ различные
    ЗаданияНаРаботу.Контрагент КАК Контрагент,
    ЗаданияНаРаботу.Регистратор КАК Регистратор
поместить вт
ИЗ
    РегистрНакопления.ЗаданияНаРаботу КАК ЗаданияНаРаботу
ГДЕ
    ЗаданияНаРаботу.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
    И ВЫБОР
            КОГДА &Контрагент <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
                ТОГДА ЗаданияНаРаботу.Контрагент = &Контрагент
            ИНАЧЕ ИСТИНА
        КОНЕЦ 
;
А далее к ВТ лепишь поступлениев кассу
   AnisaL
 
19 - 03.03.21 - 17:08
(18)  вот такой запрос ничего не выдает

ВЫБРАТЬ
    ЗаданияНаРаботу.Контрагент КАК Контрагент
ПОМЕСТИТЬ ВТ
ИЗ
    РегистрНакопления.ЗаданияНаРаботу КАК ЗаданияНаРаботу
ГДЕ
    ЗаданияНаРаботу.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
    И ВЫБОР
            КОГДА &Контрагент <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
                ТОГДА ЗаданияНаРаботу.Контрагент = &Контрагент
            ИНАЧЕ ИСТИНА
        КОНЕЦ
    И ЗаданияНаРаботу.Организация = &Организация

СГРУППИРОВАТЬ ПО
    ЗаданияНаРаботу.Контрагент
;

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

ВЫБРАТЬ
    ВТ.Контрагент КАК Контрагент,
    СУММА(ПоступлениеВКассу.СуммаДокумента) КАК Сумма
ИЗ
    ВТ КАК ВТ
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеВКассу КАК ПоступлениеВКассу
        ПО ВТ.Контрагент = ПоступлениеВКассу.Контрагент
            И (ПоступлениеВКассу.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания)

СГРУППИРОВАТЬ ПО
    ВТ.Контрагент
АВТОУПОРЯДОЧИВАНИЕ
   dka80
 
20 - 03.03.21 - 17:16
(19) во-первых, выбрать РАЗЛИЧНЫЕ ЗаданияНаРаботу.Контрагент КАК Контрагент. Хотя у тебя там есть Сгруппировать, но как то это через...
во-вторых: ты этот запрос в консоли запросов прогнала? есть строки во временной таблице? Если нет, начинай потихоньку убирать условия из ГДЕ
в-третьих: почему ты и задания отбираешь по периоду и дату оплаты по периоду? А если задания были в феврале, а оплатили в марте?
   НЕА123
 
21 - 03.03.21 - 17:22
(20)+
NULL
   Said_We
 
22 - 03.03.21 - 17:27
(0) А чего такое условие сложное?
И (ЗаданияНаРаботу.Контрагент = &Контрагент
   ИЛИ &Контрагент = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка))

Как-то проще по моему читается.

В регистр накопления приход и расход с разными знаками пишется. Пожет это не двойные строки, а такие записи в РН?


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