0
D_Pavel
05.12.12
✎
06:55
|
Всего мнений: 4
Запрос упростил для понятности, на самом деле он гораздо больше.
Первый вариант:
ВЫБРАТЬ
ПриходнаяТТН.Номер,
ПриходнаяТТНТовары.Товар КАК Номенклатура
ИЗ
Документ.ПриходнаяТТН.ТЧасть КАК ПриходнаяТТНТовары
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриходнаяТТН КАК ПриходнаяТТН
ПО ПриходнаяТТНТовары.Ссылка = ПриходнаяТТН.Ссылка
ГДЕ
ПриходнаяТТН.Дата МЕЖДУ &НачПериода И &КонПериода
Второй:
ВЫБРАТЬ
ПриходнаяТТН.Номер,
ПриходнаяТТНТовары.Товар КАК Номенклатура
ИЗ
Документ.ПриходнаяТТН.ТЧасть КАК ПриходнаяТТНТовары
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриходнаяТТН КАК ПриходнаяТТН
ПО ПриходнаяТТНТовары.Ссылка = ПриходнаяТТН.Ссылка
ГДЕ
ПриходнаяТТН.Дата МЕЖДУ &НачПериода И &КонПериода
И ПриходнаяТТНТовары.Ссылка.Дата МЕЖДУ &НачПериода И &КонПериода
Третий:
ВЫБРАТЬ
ПриходнаяТТНТовары.Ссылка.Номер,
ПриходнаяТТНТовары.Товар КАК Номенклатура
ИЗ
Документ.ПриходнаяТТН.ТЧасть КАК ПриходнаяТТНТовары
ГДЕ
ПриходнаяТТНТовары.Ссылка.Дата МЕЖДУ &НачПериода И &КонПериода
|
|
18
dmpl
05.12.12
✎
08:46
|
А вообще, 1-й вариант лучше делать так:
ВЫБРАТЬ
ПриходнаяТТН.Номер,
ПриходнаяТТНТовары.Товар КАК Номенклатура
ИЗ
Документ.ПриходнаяТТН.ТЧасть КАК ПриходнаяТТНТовары
ЛЕВОЕ СОЕДИНЕНИЕ
(ВЫБРАТЬ
Ссылка,
Номер
ИЗ
Документ.ПриходнаяТТН КАК ПриходнаяТТН
ГДЕ
ПриходнаяТТН.Дата МЕЖДУ &НачПериода И &КонПериода
) КАК ПриходнаяТТН
ПО ПриходнаяТТНТовары.Ссылка = ПриходнаяТТН.Ссылка
Это на случай, если оптимизация не сработает, и сначала выполнится соединение по всем документам, и только потом будет наложено условие на период. Плюс чем меньше реквизитов выбираешь - тем быстрее работает запрос.
А при большой выборке (когда запрос хотя бы секунду исполняется) будет лучше
ВЫБРАТЬ
Ссылка,
Номер
ПОМЕСТИТЬ ВТДокументы
ИЗ
Документ.ПриходнаяТТН КАК ПриходнаяТТН
ГДЕ
ПриходнаяТТН.Дата МЕЖДУ &НачПериода И &КонПериода
;
ВЫБРАТЬ
ПриходнаяТТН.Номер,
ПриходнаяТТНТовары.Товар КАК Номенклатура
ИЗ
Документ.ПриходнаяТТН.ТЧасть КАК ПриходнаяТТНТовары
ЛЕВОЕ СОЕДИНЕНИЕ ВТДокументы КАК ПриходнаяТТН
ПО ПриходнаяТТН.Ссылка = ПриходнаяТТНТовары.Ссылка
ГДЕ
ПриходнаяТТНТовары.Ссылка В (ВЫБРАТЬ Ссылка ИЗ ВТДокументы)
Оговорка про большую выборку связана с тем, что создание временной таблицы по времени довольно затратно (0,2-0,3 с независимо от ее размера), а потому, например, в обработчике ПриПолученииДанных() или ПриВыводеСтроки() запросы с временными таблицами лучше не использовать.
Свой вариант. |
|