|
Помогите с запросом | ☑ | ||
---|---|---|---|---|
0
AlvlSpb
10.02.17
✎
20:07
|
ломал голову, но так и не сообразил как сделать. Задача - отобрать заказы покупателя и номенклатуру где в ТЧ Запасы есть резервирование товара, но на дату заказа нет этого товара на складах. Казалось бы просто. Сделал запрос:
Код: "ВЫБРАТЬ | ЗаказПокупателяЗапасы.Ссылка, | ЗаказПокупателяЗапасы.Ссылка.Дата, | ЗаказПокупателяЗапасы.Номенклатура, | ЗаказПокупателяЗапасы.Резерв, | ЗапасыОстатки.КоличествоОстаток |ИЗ | Документ.ЗаказПокупателя.Запасы КАК ЗаказПокупателяЗапасы | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Запасы.Остатки(&Дата, ) КАК ЗапасыОстатки | ПО ЗаказПокупателяЗапасы.Номенклатура = ЗапасыОстатки.Номенклатура |ГДЕ | ЗаказПокупателяЗапасы.Резерв > 0 | И ЗапасыОстатки.КоличествоОстаток = 0 Но параметр &Дата в вирт таблице Запасы.Остатки должна быть дата заказа, т.е. результат этой же выборки - Выборка.Дата Как можно получить нужную дату в данном случае? |
|||
1
ГдеСобака Зарыта
10.02.17
✎
20:10
|
В поиск "срез последних на каждую дату".
|
|||
2
AlvlSpb
10.02.17
✎
20:14
|
(1) Какой срез последних? - регистр накопления а не сведений. И в том и вопрос, что заказов тьма и нужно проверить в каких есть резерв но на ДАТУ заказа этого товара не было на складах
|
|||
3
jsmith82
10.02.17
✎
20:22
|
(2) ты его не понял
|
|||
4
AlvlSpb
10.02.17
✎
20:24
|
(3) Возможно. Тогда нужно разъяснение
|
|||
5
jsmith82
10.02.17
✎
20:28
|
Да там про логику запроса к РС. Получаем цену на разные даты
В данном случае у нас должна быть таблица ОстаткиИОбороты РН с периодичностью Регистратор |
|||
6
AlvlSpb
10.02.17
✎
20:33
|
(5) Кажется начинаю понимать. Сейчас попробую. Спасибо за разъяснение
|
|||
7
AlvlSpb
10.02.17
✎
21:02
|
Нет. Не разобрался. Вопрос остается
|
|||
8
jsmith82
10.02.17
✎
21:12
|
Опаньке
|
|||
9
jsmith82
10.02.17
✎
21:12
|
проблема с соединением двух таблиц?
|
|||
10
AlvlSpb
10.02.17
✎
21:32
|
(9) Кажется сделал. Соединил таблицы так
Документ.ЗаказПокупателя.Запасы КАК ЗаказПокупателяЗапасы ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Запасы.Остатки КАК ЗапасыОстатки ПО (ЗаказПокупателяЗапасы.Ссылка = ЗапасыОстатки.ЗаказПокупателя.Ссылка) |
|||
11
h-sp
10.02.17
✎
21:45
|
(10) не прокатит
|
|||
12
AlvlSpb
10.02.17
✎
21:50
|
(11) Да. Проверил отчетами. Врет
|
|||
13
h-sp
10.02.17
✎
21:54
|
(12) если пишешь
РегистрНакопления.Запасы.Остатки без параметра &Дата, то это значит остатки на сегодняшний день. |
|||
14
AlvlSpb
10.02.17
✎
22:03
|
(13) В первоначальном запросе есть этот параметр, но в том и вопрос как его получить, если он тоже результат выборки.
|
|||
15
h-sp
10.02.17
✎
22:57
|
(14) откажись от таблицы остатки. Пользуйся таблицей ОстаткиИОбороты
|
|||
16
mkalimulin
10.02.17
✎
23:17
|
(0) Эта задача называется "Остатки на каждую дату в запросе". Посмотрите поиском - найдете примеры решений.
Пользуйтесь конструктором JUG. http://catalog.mista.ru/public/569569/ Там есть библиотека шаблонов, и этот случай тоже. |
|||
17
AlvlSpb
10.02.17
✎
23:24
|
(15) А почему ОстаткиИОбороты? Логики не понимаю
(16) Спасибо за подсказку. Буду разбираться |
|||
18
jsmith82
10.02.17
✎
23:55
|
конфы с собой нет
написал в блокноте
|
|||
19
AlvlSpb
11.02.17
✎
00:58
|
(18) Спасибо большое. Работает! Вызывает уважение как такое можно написать без конфигуратора в блокноте (три незначительные ошибки поправил) Снимаю шляпу и огромная благодарность.
|
|||
20
AlvlSpb
11.02.17
✎
12:13
|
(18) Еще раз спасибо за помощь. Но.
При детальной проверке выяснилось, что запрос выдает неверные данные. На основе (точнее на идеи) вашего запроса все-таки сделал свой, который выдал правильный результат (проверил более десятка заказов по отчетам и на разные даты). Сомнения остаются. Посмотрите проф взглядом ВЫБРАТЬ ЗаказПокупателяЗапасы.Ссылка КАК Ссылка, ЗаказПокупателяЗапасы.Номенклатура КАК Номенклатура, ЗаказПокупателяЗапасы.Резерв КАК Резерв, ЗапасыОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток ИЗ Документ.ЗаказПокупателя.Запасы КАК ЗаказПокупателяЗапасы ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Запасы.ОстаткиИОбороты(, , Регистратор, , ) КАК ЗапасыОстаткиИОбороты ПО (ЗаказПокупателяЗапасы.Номенклатура = ЗапасыОстаткиИОбороты.Номенклатура) ГДЕ ЗаказПокупателяЗапасы.Резерв > 0 И ЕСТЬNULL(ЗапасыОстаткиИОбороты.КоличествоКонечныйОстаток, 0) = 0 И ЗапасыОстаткиИОбороты.Период = ЗаказПокупателяЗапасы.Ссылка.Дата УПОРЯДОЧИТЬ ПО ЗаказПокупателяЗапасы.Ссылка.Дата |
|||
21
jsmith82
11.02.17
✎
13:13
|
одну ошибку в (18) нашел
ИЗ ВтЗаказыСПериодомСоединения КАК ВтЗаказыСПериодомСоединения ЛЕВОЕ СОЕДИНЕНИЕ ВтОО КАК ВтОО ПО ВтЗаказыСПериодомСоединения.Номенклатура = ВтОО.Номенклатура И ВтЗаказыСПериодомСоединения.Период <= ВтОО.Период В (20) нерабочий вариант |
|||
22
h-sp
11.02.17
✎
13:35
|
(20) вообще очень странный запрос, непонятно зачем он нужен.
Зачем вы выводите ЗапасыОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток он же всегда равен 0. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |