powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / помогите разобраться с запросом
7 сообщений из 7, страница 1 из 1
помогите разобраться с запросом
    #36768864
pvorobev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть вот такой запрос:
ВЫБРАТЬ
РеализацияТоваровУслуг.Контрагент,
РеализацияТоваровУслуг.АдресДоставки,
РеализацияТоваровУслуг.Ссылка КАК Номер,
РеализацияТоваровУслуг.СуммаДокумента,
РеализацияТоваровУслуг.Подразделение,
РеализацияТоваровУслуг.Дата,
ЕСТЬNULL(ПриходныйКассовыйОрдер.СуммаДокумента, 0)+ ЕСТЬNULL(ПлатежноеПоручениеВходящее.СуммаДокумента, 0) КАК СуммаДокумента1,
ВЫБОР
КОГДА ЕСТЬNULL(ПриходныйКассовыйОрдер.СуммаДокумента, 0) > 0
И ЕСТЬNULL(ПлатежноеПоручениеВходящее.СуммаДокумента, 0) > 0
ТОГДА "Нал и без нал"
ИНАЧЕ ВЫБОР
КОГДА ЕСТЬNULL(ПриходныйКассовыйОрдер.СуммаДокумента, 0) > 0
ТОГДА "Нал"
ИНАЧЕ ВЫБОР
КОГДА ЕСТЬNULL(ПлатежноеПоручениеВходящее.СуммаДокумента, 0) > 0
ТОГДА "Без нал"
КОНЕЦ
КОНЕЦ
КОНЕЦ КАК Вид,
ВЫРАЗИТЬ(РеализацияТоваровУслуг.СуммаДокумента - (ЕСТЬNULL(ПриходныйКассовыйОрдер.СуммаДокумента, 0) + ЕСТЬNULL(ПлатежноеПоручениеВходящее.СуммаДокумента, 0)) КАК ЧИСЛО(15, 2)) КАК ДолгТест
ИЗ
Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриходныйКассовыйОрдер КАК ПриходныйКассовыйОрдер
ПО РеализацияТоваровУслуг.Ссылка = ПриходныйКассовыйОрдер.ДокументОснование
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПлатежноеПоручениеВходящее КАК ПлатежноеПоручениеВходящее
ПО РеализацияТоваровУслуг.Ссылка = ПлатежноеПоручениеВходящее.ДокументОснование
ГДЕ
РеализацияТоваровУслуг.Дата <= &период
И (ВЫРАЗИТЬ(РеализацияТоваровУслуг.СуммаДокумента - (ЕСТЬNULL(ПриходныйКассовыйОрдер.СуммаДокумента, 0) + ЕСТЬNULL(ПлатежноеПоручениеВходящее.СуммаДокумента, 0)) КАК ЧИСЛО(15, 2))) <> 0

после выполнения выводиться отчет, не могу понять такую штуку, если по документу реализация было два приходника, то в отчет выводится две строки с одним и со вторым приходником, а должно по сумме двух строк вообще убираться, как это исправить
...
Рейтинг: 0 / 0
помогите разобраться с запросом
    #36768897
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>если по документу реализация было два приходника, то в отчет выводится две строки с одним и со вторым приходником

логично. У тебя 2 таблицы между первой и второй левое соединение:

табл. 1

id
1
2
3

табл. 2

id FK (id табл. 1)
11 1
12 1
13 2

в выборке:

1 11
1 12
2 13
3 NULL



Сгруппировать строки

суммы приходников завернуть в агрегатную функцию Сумма(), сумму реализации в Максимум (чтобы его не двоило)
...
Рейтинг: 0 / 0
помогите разобраться с запросом
    #36768909
pvorobev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господин ПЖ>если по документу реализация было два приходника, то в отчет выводится две строки с одним и со вторым приходником

логично. У тебя 2 таблицы между первой и второй левое соединение:

табл. 1

id
1
2
3

табл. 2

id FK (id табл. 1)
11 1
12 1
13 2

в выборке:

1 11
1 12
2 13
3 NULL



Сгруппировать строки

суммы приходников завернуть в агрегатную функцию Сумма(), сумму реализации в Максимум (чтобы его не двоило)
спасибо конечно за отзывчивость а нельзя ли поконкретнее, а то мне не допереть до этого, заранее спасибо
...
Рейтинг: 0 / 0
помогите разобраться с запросом
    #36769479
pvorobev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
помогите плиз как это исправить в запросе
...
Рейтинг: 0 / 0
помогите разобраться с запросом
    #36769665
Фотография DOSS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если трудно запросить одним запросом, то разделите на несколько простых запросов.
...
Рейтинг: 0 / 0
помогите разобраться с запросом
    #36770442
pvorobev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DOSSЕсли трудно запросить одним запросом, то разделите на несколько простых запросов.
Совсем запутался, помогите пожалуйста, кто чем можете(
...
Рейтинг: 0 / 0
помогите разобраться с запросом
    #36773843
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DOSSЕсли трудно запросить одним запросом, то разделите на несколько простых запросов.Одним запросом это никак не получится. Потому что два левых соединения по-любому будут множить суммы.

Простейший вариант - вложенный запрос.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
ВЫБРАТЬ
  РеализацияСПриходниками.РТУ КАК Номер,
  РеализацияСПриходниками.Контрагент,
  РеализацияСПриходниками.АдресДоставки,
  РеализацияСПриходниками.СуммаДокумента,
  РеализацияСПриходниками.Подразделение,
  РеализацияСПриходниками.Дата,
  ЕСТЬNULL(СУММА(ПлатежноеПоручениеВходящее.СуммаДокумента),  0 ) + СуммаПКО КАК СуммаДокумента1,
  ВЫРАЗИТЬ(РеализацияСПриходниками.СуммаДокумента - ЕСТЬNULL(СУММА(ПлатежноеПоручениеВходящее.СуммаДокумента),  0 ) + СуммаПКО КАК ЧИСЛО( 15 ,  2 )) КАК ДолгТест
ИЗ
  (
  ВЫБРАТЬ
    РеализацияТоваровУслуг.Ссылка КАК РТУ,
    РеализацияТоваровУслуг.Контрагент,
    РеализацияТоваровУслуг.АдресДоставки,
    РеализацияТоваровУслуг.СуммаДокумента,
    РеализацияТоваровУслуг.Подразделение,
    РеализацияТоваровУслуг.Дата,
    ЕСТЬNULL(СУММА(ПриходныйКассовыйОрдер.СуммаДокумента),  0 ) КАК СуммаПКО
  ИЗ
    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриходныйКассовыйОрдер КАК ПриходныйКассовыйОрдер
      ПО РеализацияТоваровУслуг.Ссылка = ПриходныйКассовыйОрдер.ДокументОснование
  ГДЕ
    РеализацияТоваровУслуг.Дата <= &период
  СГРУППИРОВАТЬ ПО
    РеализацияТоваровУслуг.Ссылка,
    РеализацияТоваровУслуг.Контрагент,
    РеализацияТоваровУслуг.АдресДоставки,
    РеализацияТоваровУслуг.СуммаДокумента,
    РеализацияТоваровУслуг.Подразделение,
    РеализацияТоваровУслуг.Дата
  ) КАК РеализацияСПриходниками
  ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПлатежноеПоручениеВходящее КАК ПлатежноеПоручениеВходящее
    ПО РеализацияСПриходниками.РТУ = ПлатежноеПоручениеВходящее.ДокументОснование

СГРУППИРОВАТЬ ПО
  РеализацияСПриходниками.РТУ,
  РеализацияСПриходниками.Контрагент,
  РеализацияСПриходниками.АдресДоставки,
  РеализацияСПриходниками.СуммаДокумента,
  РеализацияСПриходниками.Подразделение,
  РеализацияСПриходниками.Дата,
  РеализацияСПриходниками.СуммаПКО
ИМЕЮЩИЕ
  ВЫРАЗИТЬ(РеализацияСПриходниками.СуммаДокумента - ЕСТЬNULL(СУММА(ПлатежноеПоручениеВходящее.СуммаДокумента),  0 ) + СуммаПКО КАК ЧИСЛО( 15 ,  2 )) <>  0 
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / помогите разобраться с запросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]