Запрос по задолженности контрагента
05.03.2009
10:01
#1
"Добрый день.
Возникла проблема при написании запроса по задолженности контрагентов.
Суть в следующем нужно взять остатки по счету 62.01 в разрезе субконто и остатки по 62.02 и если есть авансовый платеж у контрагента, то найти разницу 62.01 - 62.02
Как вывести все данные из 62.02?
ВЫБРАТЬ
ВложенныйЗапрос.Субконто1 КАК Субконто1,
ВложенныйЗапрос.Субконто2,
ВложенныйЗапрос.СуммаОстатокДт,
ВложенныйЗапрос1.СуммаОстатокКт,
ВложенныйЗапрос.СуммаОстатокДт - ВЫБОР
КОГДА ВложенныйЗапрос1.СуммаОстатокКт ЕСТЬ NULL
ТОГДА 0
ИНАЧЕ ВложенныйЗапрос1.СуммаОстатокКт
КОНЕЦ - ВЫБОР
КОГДА ВложенныйЗапрос2.СуммаОстатокКт ЕСТЬ NULL
ТОГДА 0
ИНАЧЕ ВложенныйЗапрос2.СуммаОстатокКт
КОНЕЦ КАК СуммаЗадолженности
ИЗ
(ВЫБРАТЬ
ХозрасчетныйОстатки.Счет КАК Счет,
ХозрасчетныйОстатки.Субконто1 КАК Субконто1,
ХозрасчетныйОстатки.Субконто2 КАК Субконто2,
ХозрасчетныйОстатки.СуммаОстатокДт КАК СуммаОстатокДт
ИЗ
РегистрБухгалтерии.Хозрасчетный.Остатки(&;Период, Счет = &;Счет, &;ВидыСубконто, ) КАК ХозрасчетныйОстатки
СГРУППИРОВАТЬ ПО
ХозрасчетныйОстатки.Субконто1,
ХозрасчетныйОстатки.Субконто2,
ХозрасчетныйОстатки.Счет,
ХозрасчетныйОстатки.СуммаОстатокДт) КАК ВложенныйЗапрос
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ХозрасчетныйОстатки.Субконто1 КАК Субконто1,
ХозрасчетныйОстатки.Субконто2 КАК Субконто2,
ХозрасчетныйОстатки.СуммаОстатокКт КАК СуммаОстатокКт
ИЗ
РегистрБухгалтерии.Хозрасчетный.Остатки(&;Период, Счет = &;Счет02, &;ВидыСубконто, ) КАК ХозрасчетныйОстатки
СГРУППИРОВАТЬ ПО
ХозрасчетныйОстатки.Субконто1,
ХозрасчетныйОстатки.Субконто2,
ХозрасчетныйОстатки.СуммаОстатокКт) КАК ВложенныйЗапрос1
ПО ВложенныйЗапрос.Субконто1 = ВложенныйЗапрос1.Субконто1
И ВложенныйЗапрос.Субконто2 = ВложенныйЗапрос1.Субконто2
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ХозрасчетныйОстатки.Субконто1 КАК Субконто1,
ХозрасчетныйОстатки.Субконто2 КАК Субконто2,
ХозрасчетныйОстатки.СуммаОстатокКт КАК СуммаОстатокКт
ИЗ
РегистрБухгалтерии.Хозрасчетный.Остатки(&;Период, Счет = &;Счет76, &;ВидыСубконто, ) КАК ХозрасчетныйОстатки) КАК ВложенныйЗапрос2
ПО ВложенныйЗапрос.Субконто1 = ВложенныйЗапрос2.Субконто1
И ВложенныйЗапрос.Субконто2 = ВложенныйЗапрос2.Субконто2
ИТОГИ
СУММА(СуммаЗадолженности)
ПО
ОБЩИЕ
"
Возникла проблема при написании запроса по задолженности контрагентов.
Суть в следующем нужно взять остатки по счету 62.01 в разрезе субконто и остатки по 62.02 и если есть авансовый платеж у контрагента, то найти разницу 62.01 - 62.02
Как вывести все данные из 62.02?
ВЫБРАТЬ
ВложенныйЗапрос.Субконто1 КАК Субконто1,
ВложенныйЗапрос.Субконто2,
ВложенныйЗапрос.СуммаОстатокДт,
ВложенныйЗапрос1.СуммаОстатокКт,
ВложенныйЗапрос.СуммаОстатокДт - ВЫБОР
КОГДА ВложенныйЗапрос1.СуммаОстатокКт ЕСТЬ NULL
ТОГДА 0
ИНАЧЕ ВложенныйЗапрос1.СуммаОстатокКт
КОНЕЦ - ВЫБОР
КОГДА ВложенныйЗапрос2.СуммаОстатокКт ЕСТЬ NULL
ТОГДА 0
ИНАЧЕ ВложенныйЗапрос2.СуммаОстатокКт
КОНЕЦ КАК СуммаЗадолженности
ИЗ
(ВЫБРАТЬ
ХозрасчетныйОстатки.Счет КАК Счет,
ХозрасчетныйОстатки.Субконто1 КАК Субконто1,
ХозрасчетныйОстатки.Субконто2 КАК Субконто2,
ХозрасчетныйОстатки.СуммаОстатокДт КАК СуммаОстатокДт
ИЗ
РегистрБухгалтерии.Хозрасчетный.Остатки(&;Период, Счет = &;Счет, &;ВидыСубконто, ) КАК ХозрасчетныйОстатки
СГРУППИРОВАТЬ ПО
ХозрасчетныйОстатки.Субконто1,
ХозрасчетныйОстатки.Субконто2,
ХозрасчетныйОстатки.Счет,
ХозрасчетныйОстатки.СуммаОстатокДт) КАК ВложенныйЗапрос
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ХозрасчетныйОстатки.Субконто1 КАК Субконто1,
ХозрасчетныйОстатки.Субконто2 КАК Субконто2,
ХозрасчетныйОстатки.СуммаОстатокКт КАК СуммаОстатокКт
ИЗ
РегистрБухгалтерии.Хозрасчетный.Остатки(&;Период, Счет = &;Счет02, &;ВидыСубконто, ) КАК ХозрасчетныйОстатки
СГРУППИРОВАТЬ ПО
ХозрасчетныйОстатки.Субконто1,
ХозрасчетныйОстатки.Субконто2,
ХозрасчетныйОстатки.СуммаОстатокКт) КАК ВложенныйЗапрос1
ПО ВложенныйЗапрос.Субконто1 = ВложенныйЗапрос1.Субконто1
И ВложенныйЗапрос.Субконто2 = ВложенныйЗапрос1.Субконто2
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ХозрасчетныйОстатки.Субконто1 КАК Субконто1,
ХозрасчетныйОстатки.Субконто2 КАК Субконто2,
ХозрасчетныйОстатки.СуммаОстатокКт КАК СуммаОстатокКт
ИЗ
РегистрБухгалтерии.Хозрасчетный.Остатки(&;Период, Счет = &;Счет76, &;ВидыСубконто, ) КАК ХозрасчетныйОстатки) КАК ВложенныйЗапрос2
ПО ВложенныйЗапрос.Субконто1 = ВложенныйЗапрос2.Субконто1
И ВложенныйЗапрос.Субконто2 = ВложенныйЗапрос2.Субконто2
ИТОГИ
СУММА(СуммаЗадолженности)
ПО
ОБЩИЕ
"
05.03.2009
10:43
#2
Если не можете сообразить как это сделать на одном уровне, то сделайте 2 вложенных запроса. По одному получите долги, а по другому авансы. Установите связь по контрагенту и считайте разницу.
Распределенная база данных. Обмен данными по одной организации.v8: RLS Разграничение по Организациям Управление торговлей 10.3.6.8
Читают тему
(гостей: 1)