![]() |
|
Регистр сведений последний регистратор | ☑ | ||
---|---|---|---|---|
0
prtx
12.06.15
✎
14:20
|
Добрый день, знатоки.
Вот я начинаю осваивать запросы, но опять тупик(( Суть задачи мне нужно на основании потребности сформировать заказ поставщику, и при этом нужно руководствоваться только последним прайсом. Я делая следуещее: запрос№1 - выбираю все нужные мне записи с учетом связи свой номенклатуры с номенклатурой поставщика и т.п. (углубляться не буду..) Запрос№2 - выбираю максимальную дату регистратора(документа прайса). Запрос№3 - левым соединение выбираю все записи из результата Запрос№1 где дата равна результату Запроса№2(т.е. максимальная дата). Вот мой запрос: ВЫБРАТЬ ПрайсыПоставщиковСрезПоследних.Поставщик КАК Поставщик, ПрайсыПоставщиковСрезПоследних.Код, Потребность.Номенклатура КАК Номенклатура, Потребность.КоличествоЦелое, ПрайсыПоставщиковСрезПоследних.ЦенаОптоваяБезНДС, ПрайсыПоставщиковСрезПоследних.Период КАК Период, ПрайсыПоставщиковСрезПоследних.Регистратор ПОМЕСТИТЬ ТаблицаДвижений ИЗ РегистрСведений.ПрайсыПоставщиков.СрезПоследних(&ТекДата, ) КАК ПрайсыПоставщиковСрезПоследних ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПоставляемаяНоменклатура КАК ПоставляемаяНоменклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Потребность КАК Потребность ПО ПоставляемаяНоменклатура.Номенклатура = Потребность.Номенклатура ПО ПрайсыПоставщиковСрезПоследних.Код = ПоставляемаяНоменклатура.Код И ПрайсыПоставщиковСрезПоследних.Поставщик = ПоставляемаяНоменклатура.Поставщик ГДЕ Потребность.Организация = &Организация И Потребность.Склад = &Склад СГРУППИРОВАТЬ ПО ПрайсыПоставщиковСрезПоследних.Поставщик, ПрайсыПоставщиковСрезПоследних.Код, Потребность.Номенклатура, Потребность.КоличествоЦелое, ПрайсыПоставщиковСрезПоследних.ЦенаОптоваяБезНДС, ПрайсыПоставщиковСрезПоследних.Период, ПрайсыПоставщиковСрезПоследних.Регистратор ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МАКСИМУМ(ТаблицаДвижений.Период) КАК Период ПОМЕСТИТЬ ТаблицаПериодов ИЗ ТаблицаДвижений КАК ТаблицаДвижений ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ТаблицаДвижений.Поставщик КАК Поставщик, ТаблицаДвижений.Код, ТаблицаДвижений.Номенклатура, ТаблицаДвижений.КоличествоЦелое, ТаблицаДвижений.ЦенаОптоваяБезНДС, ТаблицаДвижений.Период, ТаблицаДвижений.Регистратор КАК Регистратор ИЗ ТаблицаПериодов КАК ТаблицаПериодов ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаДвижений КАК ТаблицаДвижений ПО (ТаблицаДвижений.Период = ТаблицаПериодов.Период) ИТОГИ ПО Поставщик Где моя ошибка? Не могу понять... Он мне падлюка все равно выдает все записи, т.е. я вижу что в последнем прайсе нет этой номенклатуры, она есть в предыдущих, а он мне все равно ее выдает... зы может тут еще какие-то ошибки то исправляйте и критикуйте. зыы сильно камнями не бросайтесь ибо это мой первый пакетный запрос или как его правильно))) |
|||
1
lEvGl
гуру
12.06.15
✎
14:30
|
если правильно понял, то вы хотите получить срез последних, но только за какой то период? поставьте условие на срез последних Период Меджу, > < и т д
|
|||
2
RomanYS
12.06.15
✎
14:34
|
срез для того и служит собирать последние значения по всем имеющимся наборам измерений. Тебе просто надо взять ТЧ документа или его движения по регистру
|
|||
3
prtx
12.06.15
✎
14:50
|
(1) Мне вообще нужно получить всю номенклатуру из последнего прайса и на основании этого сформировать заказ.
Например: прайс за 01.06.2015 в нем есть яблоки, груши, абрикосы прайс за 02.06.2015 в нем есть яблоки, груши и мне нужно получить только яблоки и груши, т.к. прайс за 01.06.2015 уже не актуален, и уже на основании того что есть в последнем прайсе сделать заказ. |
|||
4
NcSteel
12.06.15
✎
14:53
|
(3)
Выбрать * Из ( Выбрать Максимум(Регистратор.МоментВремени) как МоментВремени Из ТаблицаРегистра) Как ВложенныйЗапрос Левое соединение ТаблицаРегистра по ВложенныйЗапрос.МоментВремени = ТаблицаРегистра .МоментВремени как то так. |
|||
5
prtx
12.06.15
✎
15:13
|
(4) + в карму вам))) Спасибо, за указание верного направления!
Итак, сделал через вложенный запрос и все заработало. Код запроса: "ВЫБРАТЬ | ПрайсыПоставщиковСрезПоследних.Поставщик КАК Поставщик, | ПрайсыПоставщиковСрезПоследних.Код, | Потребность.Номенклатура КАК Номенклатура, | Потребность.КоличествоЦелое, | ПрайсыПоставщиковСрезПоследних.ЦенаОптоваяБезНДС |ИЗ | (ВЫБРАТЬ | МАКСИМУМ(ПрайсыПоставщиков.Период) КАК Период | ИЗ | РегистрСведений.ПрайсыПоставщиков КАК ПрайсыПоставщиков) КАК ВложенныйЗапрос | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПрайсыПоставщиков.СрезПоследних(&ТекДата, ) КАК ПрайсыПоставщиковСрезПоследних | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПоставляемаяНоменклатура КАК ПоставляемаяНоменклатура | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Потребность КАК Потребность | ПО ПоставляемаяНоменклатура.Номенклатура = Потребность.Номенклатура | ПО ПрайсыПоставщиковСрезПоследних.Код = ПоставляемаяНоменклатура.Код | И ПрайсыПоставщиковСрезПоследних.Поставщик = ПоставляемаяНоменклатура.Поставщик | ПО ВложенныйЗапрос.Период = ПрайсыПоставщиковСрезПоследних.Период |ГДЕ | Потребность.Организация = &Организация | И Потребность.Склад = &Склад | |СГРУППИРОВАТЬ ПО | ПрайсыПоставщиковСрезПоследних.Поставщик, | ПрайсыПоставщиковСрезПоследних.Код, | Потребность.Номенклатура, | Потребность.КоличествоЦелое, | ПрайсыПоставщиковСрезПоследних.ЦенаОптоваяБезНДС |ИТОГИ ПО | Поставщик" |
|||
6
prtx
12.06.15
✎
15:16
|
(5) Сори вот окончательный запрос(там чутка лишнего было).
"ВЫБРАТЬ | ПрайсыПоставщиковСрезПоследних.Поставщик КАК Поставщик, | ПрайсыПоставщиковСрезПоследних.Код, | Потребность.Номенклатура КАК Номенклатура, | Потребность.КоличествоЦелое, | ПрайсыПоставщиковСрезПоследних.ЦенаОптоваяБезНДС |ИЗ | (ВЫБРАТЬ | МАКСИМУМ(ПрайсыПоставщиков.Период) КАК Период | ИЗ | РегистрСведений.ПрайсыПоставщиков КАК ПрайсыПоставщиков) КАК ВложенныйЗапрос | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПрайсыПоставщиков.СрезПоследних КАК ПрайсыПоставщиковСрезПоследних | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПоставляемаяНоменклатура КАК ПоставляемаяНоменклатура | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Потребность КАК Потребность | ПО ПоставляемаяНоменклатура.Номенклатура = Потребность.Номенклатура | ПО ПрайсыПоставщиковСрезПоследних.Код = ПоставляемаяНоменклатура.Код | И ПрайсыПоставщиковСрезПоследних.Поставщик = ПоставляемаяНоменклатура.Поставщик | ПО ВложенныйЗапрос.Период = ПрайсыПоставщиковСрезПоследних.Период |ГДЕ | Потребность.Организация = &Организация | И Потребность.Склад = &Склад | |СГРУППИРОВАТЬ ПО | ПрайсыПоставщиковСрезПоследних.Поставщик, | ПрайсыПоставщиковСрезПоследних.Код, | Потребность.Номенклатура, | Потребность.КоличествоЦелое, | ПрайсыПоставщиковСрезПоследних.ЦенаОптоваяБезНДС |ИТОГИ ПО | Поставщик" |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |