Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / [игнор отключен] [закрыт для гостей] / Запрос по остаткам / 4 сообщений из 4, страница 1 из 1
06.06.2009, 16:33
    #36029216
rubi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по остаткам
Здравствуйте. Составил простой запрос, вычисление количественных и стоимостных остатков на складе. Но проблема в том, что если у данной номенклатуры никогда не была установлена какая-либо цена, то этот артикул (в том числе с характеристикой) не попадает в итоговую выборку.
Вот запрос:
"ВЫБРАТЬ
| ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
| ТоварыНаСкладахОстаткиИОбороты.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
| ТоварыНаСкладахОстаткиИОбороты.Склад КАК Склад,
| ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток КАК НачОст,
| ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК КонОст,
| ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток*ОптовыеЦеныНоменклатурыСрезПоследних.Цена КАК СуммаЗакупНачало,
| ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток*ОптовыеЦеныНоменклатурыСрезПоследних.Цена КАК СуммаЗакупКонец,
| ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток*РозничныеЦеныНоменклатурыСрезПоследних.Цена КАК СуммаРеализацияНачало,
| ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток*РозничныеЦеныНоменклатурыСрезПоследних.Цена КАК СуммаРеализацияКонец
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(
| &ДатаНач,
| &ДатаКон,
| День,
| ,
| Номенклатура В ИЕРАРХИИ (&МассивНоменклатуры)
| И Склад В ИЕРАРХИИ (&МассивСкладов)) КАК ТоварыНаСкладахОстаткиИОбороты
|ВНУТРЕННЕЕ СОЕДИНЕНИЕ
| РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаКон,) КАК РозничныеЦеныНоменклатурыСрезПоследних
|ПО
| РозничныеЦеныНоменклатурыСрезПоследних.Номенклатура = ТоварыНаСкладахОстаткиИОбороты.Номенклатура И
| РозничныеЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры = ТоварыНаСкладахОстаткиИОбороты.ХарактеристикаНоменклатуры
|ВНУТРЕННЕЕ СОЕДИНЕНИЕ
| РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаКон,) КАК ОптовыеЦеныНоменклатурыСрезПоследних
|ПО
| ОптовыеЦеныНоменклатурыСрезПоследних.Номенклатура = ТоварыНаСкладахОстаткиИОбороты.Номенклатура И
| ОптовыеЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры = ТоварыНаСкладахОстаткиИОбороты.ХарактеристикаНоменклатуры
|ГДЕ ((ОптовыеЦеныНоменклатурыСрезПоследних.ТипЦен = &Оптовая) И (РозничныеЦеныНоменклатурыСрезПоследних.ТипЦен = &Розничная))

Пробовал и вместо ВНУТРЕННЕЕ СОЕДИНЕНИЕ писать ЛЕВОЕ (что по идее правильно, но результат одинаковый), и в выборе писал:

"ВЫБРАТЬ
...
| ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК КонОст,
|ВЫБОР
| КОГДА ОптовыеЦеныНоменклатурыСрезПоследних.Цена ЕСТЬ NULL
| Тогда 0
|Иначе
| ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток*ОптовыеЦеныНоменклатурыСрезПоследних.Цена
|КОНЕЦ КАК СуммаЗакупНачало,
...

но тоже не помогает. Подскажите, как переписать запрос, чтобы он не отсекал те записи, для которых нет цены.
...
Рейтинг: 0 / 0
06.06.2009, 17:06
    #36029242
Господин ПЖ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по остаткам
не попадает? А чего хотели? Надо курить буквари чем внутреннее соединение отличается от левого
...
Рейтинг: 0 / 0
06.06.2009, 21:26
    #36029378
Estel I
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по остаткам
не, надо курить буквари еще и по поводу порядка выполнения конструкций в запросах (хинт - когда применяются отборы) и как можно отборы переносить в параметры вирт. таблиц ;)
...
Рейтинг: 0 / 0
07.06.2009, 18:54
    #36029897
rubi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по остаткам
курить можно много чего, но иногда достаточно просто совета. Если кому надо будет, то проблема решилась:
Условие обрубает null'овые записи, но можно это обойти:

| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаКон, ТипЦен = &Оптовая ) КАК ОптовыеЦеныНоменклатурыСрезПоследних
|ПО
| ОптовыеЦеныНоменклатурыСрезПоследних.Номенклатура = ТоварыНаСкладахОстаткиИОбороты.Номенклатура И
| ОптовыеЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры = ТоварыНаСкладахОстаткиИОбороты.ХарактеристикаНоменклатуры

... ну и также для розничных, а условие теперь вообще не нужно. Ну а в списке выборки пришлось оставить следущее:
|ВЫБОР
| КОГДА ОптовыеЦеныНоменклатурыСрезПоследних.Цена ЕСТЬ NULL
| Тогда 0
|Иначе
| ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток*ОптовыеЦеныНоменклатур
ыСрезПоследних.Цена
|КОНЕЦ КАК СуммаЗакупНачало,
...
Рейтинг: 0 / 0
Форумы / [игнор отключен] [закрыт для гостей] / Запрос по остаткам / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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