|
Вот тебе пример запроса (на примере левого соединения), отбирающий только товары с ценами, у которых цена продажи меньше цены прайса:
ВЫБРАТЬ
| Продажи.Товар КАК Товар,
| Продажи.ЦенаОтпускная КАК ЦенаОтпускная,
| ЕСТЬNULL(ЦеныТоваров.Цена, 0) КАК ЦенаПрайса
|ИЗ
| РегистрНакопления.ПродажиОптовые.Обороты(&НачПериода, &КонПериода, Запись, Товар В (&СписокТоваров)) КАК Продажи
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныТоваров КАК ЦеныТоваров
| ПО Продажи.Товар = ЦеныТоваров.Товар
| И Продажи.Период = ЦеныТоваров.Период
|ГДЕ
| Продажи.ЦенаОтпускная < ЕСТЬNULL(ЦеныТоваров.Цена, 0)
| И ЦеныТоваров.Прайслист = &Прайслист
|
|СГРУППИРОВАТЬ ПО
| Продажи.Товар,
| ЕСТЬNULL(ЦеныТоваров.Цена, 0),
| Продажи.ЦенаОтпускная
Это случай если у тебя ЦенаПродажи является измерением регистра.
Если она получается из ресурсов делением:
"ВЫБРАТЬ
| Продажи.Товар КАК Товар,
| ВЫБОР
| КОГДА Продажи.КоличествоОборот = 0
| ТОГДА 0
| ИНАЧЕ Продажи.СтоимостьОтпускнаяОборот / Продажи.КоличествоОборот
| КОНЕЦ КАК ЦенаОтпускная,
| ЕСТЬNULL(ЦеныТоваров.Цена, 0) КАК ЦенаПрайса
|ИЗ
| РегистрНакопления.ПродажиОптовые.Обороты(&НачПериода, &КонПериода, Запись, Товар В (&СписокТоваров)) КАК Продажи
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныТоваров КАК ЦеныТоваров
| ПО Продажи.Товар = ЦеныТоваров.Товар
| И Продажи.Период = ЦеныТоваров.Период
|ГДЕ
| ВЫБОР
| КОГДА Продажи.КоличествоОборот = 0
| ТОГДА 0
| ИНАЧЕ Продажи.СтоимостьОтпускнаяОборот / Продажи.КоличествоОборот
| КОНЕЦ < ЕСТЬNULL(ЦеныТоваров.Цена, 0)
| И ЦеныТоваров.Прайслист = &Прайслист
Названия регистров и полей брал со своей БД отличной от "Управление торговлей", но смысл понятен. Изменено 13.09.11 23:54:43 |
|