Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
06.06.2009, 16:33
|
|||
|---|---|---|---|
|
|||
Запрос по остаткам |
|||
|
#18+
Здравствуйте. Составил простой запрос, вычисление количественных и стоимостных остатков на складе. Но проблема в том, что если у данной номенклатуры никогда не была установлена какая-либо цена, то этот артикул (в том числе с характеристикой) не попадает в итоговую выборку. Вот запрос: "ВЫБРАТЬ | ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура, | ТоварыНаСкладахОстаткиИОбороты.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, | ТоварыНаСкладахОстаткиИОбороты.Склад КАК Склад, | ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток КАК НачОст, | ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК КонОст, | ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток*ОптовыеЦеныНоменклатурыСрезПоследних.Цена КАК СуммаЗакупНачало, | ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток*ОптовыеЦеныНоменклатурыСрезПоследних.Цена КАК СуммаЗакупКонец, | ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток*РозничныеЦеныНоменклатурыСрезПоследних.Цена КАК СуммаРеализацияНачало, | ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток*РозничныеЦеныНоменклатурыСрезПоследних.Цена КАК СуммаРеализацияКонец |ИЗ | РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты( | &ДатаНач, | &ДатаКон, | День, | , | Номенклатура В ИЕРАРХИИ (&МассивНоменклатуры) | И Склад В ИЕРАРХИИ (&МассивСкладов)) КАК ТоварыНаСкладахОстаткиИОбороты |ВНУТРЕННЕЕ СОЕДИНЕНИЕ | РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаКон,) КАК РозничныеЦеныНоменклатурыСрезПоследних |ПО | РозничныеЦеныНоменклатурыСрезПоследних.Номенклатура = ТоварыНаСкладахОстаткиИОбороты.Номенклатура И | РозничныеЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры = ТоварыНаСкладахОстаткиИОбороты.ХарактеристикаНоменклатуры |ВНУТРЕННЕЕ СОЕДИНЕНИЕ | РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаКон,) КАК ОптовыеЦеныНоменклатурыСрезПоследних |ПО | ОптовыеЦеныНоменклатурыСрезПоследних.Номенклатура = ТоварыНаСкладахОстаткиИОбороты.Номенклатура И | ОптовыеЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры = ТоварыНаСкладахОстаткиИОбороты.ХарактеристикаНоменклатуры |ГДЕ ((ОптовыеЦеныНоменклатурыСрезПоследних.ТипЦен = &Оптовая) И (РозничныеЦеныНоменклатурыСрезПоследних.ТипЦен = &Розничная)) Пробовал и вместо ВНУТРЕННЕЕ СОЕДИНЕНИЕ писать ЛЕВОЕ (что по идее правильно, но результат одинаковый), и в выборе писал: "ВЫБРАТЬ ... | ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК КонОст, |ВЫБОР | КОГДА ОптовыеЦеныНоменклатурыСрезПоследних.Цена ЕСТЬ NULL | Тогда 0 |Иначе | ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток*ОптовыеЦеныНоменклатурыСрезПоследних.Цена |КОНЕЦ КАК СуммаЗакупНачало, ... но тоже не помогает. Подскажите, как переписать запрос, чтобы он не отсекал те записи, для которых нет цены. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.06.2009, 17:06
|
|||
|---|---|---|---|
|
|||
Запрос по остаткам |
|||
|
#18+
не попадает? А чего хотели? Надо курить буквари чем внутреннее соединение отличается от левого ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.06.2009, 21:26
|
|||
|---|---|---|---|
Запрос по остаткам |
|||
|
#18+
не, надо курить буквари еще и по поводу порядка выполнения конструкций в запросах (хинт - когда применяются отборы) и как можно отборы переносить в параметры вирт. таблиц ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.06.2009, 18:54
|
|||
|---|---|---|---|
|
|||
Запрос по остаткам |
|||
|
#18+
курить можно много чего, но иногда достаточно просто совета. Если кому надо будет, то проблема решилась: Условие обрубает null'овые записи, но можно это обойти: | ЛЕВОЕ СОЕДИНЕНИЕ | РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаКон, ТипЦен = &Оптовая ) КАК ОптовыеЦеныНоменклатурыСрезПоследних |ПО | ОптовыеЦеныНоменклатурыСрезПоследних.Номенклатура = ТоварыНаСкладахОстаткиИОбороты.Номенклатура И | ОптовыеЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры = ТоварыНаСкладахОстаткиИОбороты.ХарактеристикаНоменклатуры ... ну и также для розничных, а условие теперь вообще не нужно. Ну а в списке выборки пришлось оставить следущее: |ВЫБОР | КОГДА ОптовыеЦеныНоменклатурыСрезПоследних.Цена ЕСТЬ NULL | Тогда 0 |Иначе | ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток*ОптовыеЦеныНоменклатур ыСрезПоследних.Цена |КОНЕЦ КАК СуммаЗакупНачало, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=28&mobile=1&tid=1523674]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
207ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 330ms |
| total: | 620ms |

| 0 / 0 |
