|
Подзапрос в запросе в качестве поля выборки. Как сделать? | ☑ | ||
---|---|---|---|---|
0
alexey980
06.12.16
✎
20:25
|
1. Есть документ Реализация с табличной частью Товары:
<CODE> Реализация.Ссылка, Реализация.Товары.(Номенклатура, Количество, ВидЦены, Цена, Сумма) <CODE> 2. Есть документ Возврат с похожей табличной частью Товары, но без цены: <CODE> Возврат.Ссылка, Возврат.Товары.(Номенклатура, Количество, Цена, Сумма, ДокументОснование). <CODE> поле ДокументОснование - это ссылка на Реализацию, по которой ранее был отгружен товар. В одном документе Возврата могут быть номенклатуры из разных Реализаций. Задача состоит в том, чтобы каждую строку Номенклатуры табличной части Возврат.Товары дополнить полем ВидЦены, которое необходимо взять из соответствующей строки Номенклатуры в табличной части Реализация.товары, где Реализация.Ссылка = ДокументОснование Сейчас есть такой запрос: <CODE> Выбрать Возврат.Ссылка Возврат.Товары ( Номенклатура КАК НоменклатураВозврата, Количество, Цена, Сумма, ДокументОснование ) ИЗ Документ.Возврат ГДЕ Возврат.Дата > &Дата <CODE> А нужно получить что-то вроде этого: <CODE> Выбрать Возврат.Ссылка Возврат.Товары ( Номенклатура КАК НоменклатураВозврата, Количество, ( Выбрать Реализация.Товары.ВидЦены ИЗ Документ.Реализация ГДЕ Документ.Реализация.Ссылка = ДокументОснование И Документ.Реализация.Товары.Номенклатура = НоменклатураВозврата ) , Цена, Сумма, ДокументОснование ) ИЗ Документ.Возврат ГДЕ Возврат.Дата > &Дата <CODE> Помогите, пожалуйста, реализовать такой запрос. |
|||
1
SSSSS_AAAAA
06.12.16
✎
20:38
|
Связывание таблиц в запросах делают с помощью слова СОЕДИНЕНИЕ/join
|
|||
2
catena
06.12.16
✎
20:39
|
Выбрать
Возврат.Ссылка Возврат.Номенклатура КАК НоменклатураВозврата, Возврат.Количество, Возврат.Цена, Возврат.Сумма, Возврат.ДокументОснование, реализация.видцены ИЗ Документ.Возврат.Товары как Возврат левое соединение документ.Реализация.Товары как реализация по Реализация.Ссылка = Возврат.ДокументОснование И Реализация.Номенклатура = Возврат.Номенклатура ГДЕ Возврат.Дата > &Дата |
|||
3
alexey980
06.12.16
✎
21:58
|
(2) спасибо! в последней строке к Дате нужно через Ссылку обращаться (Возврат.Ссылка.Дата), иначе ругается.
ниже приведу рабочий код с реальными документами из УТ: <CODE> ВЫБРАТЬ ВозвратТоваровОтКлиента.Ссылка, ВозвратТоваровОтКлиента.НомерСтроки, ВозвратТоваровОтКлиента.Номенклатура, ВозвратТоваровОтКлиента.Количество, ВозвратТоваровОтКлиента.Цена, ВозвратТоваровОтКлиента.Сумма, ВозвратТоваровОтКлиента.ДокументРеализации, РеализацияТоваровУслуг.ВидЦены ИЗ Документ.ВозвратТоваровОтКлиента.Товары КАК ВозвратТоваровОтКлиента ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслуг ПО (РеализацияТоваровУслуг.Ссылка = ВозвратТоваровОтКлиента.ДокументРеализации.Ссылка) И (РеализацияТоваровУслуг.Номенклатура = ВозвратТоваровОтКлиента.Номенклатура) ГДЕ ВозвратТоваровОтКлиента.Ссылка.Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода </CODE> |
|||
4
vicof
07.12.16
✎
00:28
|
Ох и обматерит тебя тот, у кого вклчюен учет по характеристикам
|
|||
5
vicof
07.12.16
✎
00:28
|
включен*
|
|||
6
DrShad
07.12.16
✎
02:48
|
(4) и не только за характеристки
|
|||
7
alexey980
07.12.16
✎
14:55
|
(3) этот запрос медленный. так будет значительно быстрее:
ВЫБРАТЬ ВозвратТоваровОтКлиентаТовары.Ссылка, ВозвратТоваровОтКлиентаТовары.НомерСтроки, ВозвратТоваровОтКлиентаТовары.Номенклатура, ВозвратТоваровОтКлиентаТовары.Количество, ВозвратТоваровОтКлиентаТовары.Цена, ВозвратТоваровОтКлиентаТовары.Сумма, ВозвратТоваровОтКлиентаТовары.ДокументРеализации, РеализацияТоваровУслугТовары.ВидЦены ИЗ Документ.ВозвратТоваровОтКлиента КАК ВозвратТоваровОтКлиента ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ВозвратТоваровОтКлиента.Товары КАК ВозвратТоваровОтКлиентаТовары ПО ВозвратТоваровОтКлиента.Ссылка = ВозвратТоваровОтКлиентаТовары.Ссылка ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары ПО (РеализацияТоваровУслугТовары.Ссылка = ВозвратТоваровОтКлиентаТовары.ДокументРеализации.Ссылка) И (РеализацияТоваровУслугТовары.Номенклатура = ВозвратТоваровОтКлиентаТовары.Номенклатура) ГДЕ ВозвратТоваровОтКлиента.Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |