|
|
|
Выбрать цену номенклатуры из последнего документа Поступление | ☑ | ||
|---|---|---|---|---|
|
0
Пип Пибип
23.05.11
✎
17:54
|
Вечер добрый, господа.
Есть база УТ 10.3.10.4 Мне нужно получить последние цены Номенклатур из табличной части Товары документов Поступление товаров и услуг. Т.е, одна номенклатура - одна цена (из последнего документа, в котором эта Номенклатура встречается) Делаю так: ВЫБРАТЬ ПоступлениеТоваровУслугТовары.Ссылка, ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура, ПоступлениеТоваровУслугТовары.Цена ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг КАК Фильтр ПО ПоступлениеТоваровУслугТовары.Ссылка = Фильтр.Ссылка И ПоступлениеТоваровУслугТовары.Ссылка.МоментВремени < Фильтр.МоментВремени УПОРЯДОЧИТЬ ПО Номенклатура И получаю более одной цены для Норменклатур на тестовых данных. Как исправить запрос? |
|||
|
1
simol
23.05.11
✎
17:58
|
Сначала получаешь последние документы, а потом из них цены. А одновременно не получится
|
|||
|
2
Grusswelle
23.05.11
✎
17:59
|
+ АВТОУПОРЯДОЧИВАНИЕ
|
|||
|
3
forforumandspam
23.05.11
✎
18:10
|
Вот не пойму, зачем такой хитрый запрос. У меня запрос:
ВЫБРАТЬ ПоступлениеТоваровУслугТовары.Ссылка, ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура, ПоступлениеТоваровУслугТовары.Цена ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары УПОРЯДОЧИТЬ ПО Номенклатура даёт точно такой-же результат. А у тебя? |
|||
|
4
poligraf
23.05.11
✎
18:11
|
(3) у тебя всего один приход в базе?
|
|||
|
5
forforumandspam
23.05.11
✎
18:15
|
(4) тестил в демо-базе, где 32 документа с заполненой табличной частью "Товары".
|
|||
|
6
luckyluke
23.05.11
✎
18:17
|
(3) ты хоть понимаешь, что ты здесь выбираешь вообще все документы за весь период?
|
|||
|
7
poligraf
23.05.11
✎
18:18
|
(6) оно работает. Не сбивай человека.
|
|||
|
8
forforumandspam
23.05.11
✎
18:19
|
(6) У меня запрос из (0) выдаёт все документы за весь период. ЧЯДН?
|
|||
|
9
luckyluke
23.05.11
✎
18:19
|
(7) не, ну если работает... то тогда конечно, че уж там.
|
|||
|
10
luckyluke
23.05.11
✎
18:21
|
(8) Ну вообще задача то стоит "Мне нужно получить последние цены Номенклатур из табличной части Товары документов Поступление товаров и услуг. Т.е, одна номенклатура - одна цена (из последнего документа, в котором эта Номенклатура встречается)", у него не получается, просит помощи... а ты ему (3), ЗТДТ?
|
|||
|
11
forforumandspam
23.05.11
✎
18:22
|
Кто-нибудь, помимо меня проверял результат запроса?
|
|||
|
12
forforumandspam
23.05.11
✎
18:23
|
||||
|
13
luckyluke
23.05.11
✎
18:24
|
(11) нахрена проверять результат запроса, если и так понятно что он делает?
(12) Зачем Ты Делаешь Так |
|||
|
14
forforumandspam
23.05.11
✎
18:27
|
(13) А ты попробуй проверь. Секундное дело.
|
|||
|
15
luckyluke
23.05.11
✎
18:29
|
(14) зомбированный? Верующий? Что с тобой не так?
|
|||
|
16
forforumandspam
23.05.11
✎
18:30
|
(15) Почему со мной? У меня оба запроса дают один и тот-же результат. Подскажи, пожалуйста, по твоему мнению, почему они должны давать разный результат? Я сам в первый раз вижу такое написание запроса, мне очень интересно.
|
|||
|
17
luckyluke
23.05.11
✎
18:34
|
(16) блин, читай (10) до просветления.
|
|||
|
18
forforumandspam
23.05.11
✎
18:39
|
(17) Я тебя ПРОШУ, объясни мне, как должна работать такая конструкция запроса. Лень. Нет, так нет. А ссылка на (10) ничего не говорит. Спасибо.
|
|||
|
19
luckyluke
23.05.11
✎
18:39
|
+(17) автор по всей видимости хотел использовать вот это v8: FIFO в запросе для получения поледнего документа, но так как у него не получилось, он пришел и на форум спросить, а ты предложил не заморачиваться и сделать (3), я тебе задал вопрос в (6), а ты мне теперь будешь рассказывать, что твой запрос из (3) выдает тоже что и из (0) и поэтому получить последний док поступления вообще не стоит пытаться?
|
|||
|
20
y22-k
23.05.11
✎
18:43
|
(0) Вот Это проверь
ВЫБРАТЬ ВложенныйЗапрос.Ссылка, ПоступлениеТоваровУслугТовары.Номенклатура, ПоступлениеТоваровУслугТовары.Цена ИЗ (ВЫБРАТЬ ПЕРВЫЕ 1 ПоступлениеТоваровУслуг.Ссылка КАК Ссылка ИЗ Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг ГДЕ ПоступлениеТоваровУслуг.Проведен = ИСТИНА УПОРЯДОЧИТЬ ПО ПоступлениеТоваровУслуг.Дата УБЫВ) КАК ВложенныйЗапрос ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары ПО ВложенныйЗапрос.Ссылка = ПоступлениеТоваровУслугТовары.Ссылка |
|||
|
21
luckyluke
23.05.11
✎
18:59
|
(20) Тогда уж лучше так пробовать:
ВЫБРАТЬ
Но опять же, ему нужно скорей всего не на одну номенклатуру, а на список... в ТЧ реализации или где он там её пользует... |
|||
|
22
poligraf
23.05.11
✎
19:21
|
(20) (21) ПЕРВЫЕ - выберет первую запись. Проверял:)
Надо сначала получать список последних документов по каждой номенклатуре. ВТ или вложенный запрос (в них будет что-то вроде группировки по номенклатуре и Максимум(Документ.Дата)) и эту таблицу уже фильтром в основной запрос. |
|||
|
23
y22-k
23.05.11
✎
23:27
|
(21)(22)
все ступил неправильно задачу прочел Автор если объем не большой не тупи и сделай запрос в цикле на небольших объемах это не критично Или тебе это надо для отчета какого-то тогда проще принудительно писать цену в РС цены поставщиков и оттуда хапать последние записи на дату Мне кажется так как ты хочешь может получиться мега запрос который по времени будет дольше выполняться |
|||
|
24
Maniac
23.05.11
✎
23:33
|
Учите коррелированные подзапросы
|
|||
|
25
Maniac
23.05.11
✎
23:42
|
С вас по сто баксов
ВЫБРАТЬ ПоступлениеТоваровУслуг.Номенклатура КАК Номенклатура, ПоступлениеТоваровУслуг.Ссылка КАК Ссылка, ПоступлениеТоваровУслуг.Ссылка.Дата КАК ДатаПРИХОДА ПоступлениеТоваровУслуг.Цена КАК Цена ПОМЕСТИТЬ ПРИХОДЫ ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслуг ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Продажи.Номенклатура, Продажи.СтоимостьОборот КАК СтоимостьОборот, Продажи.Группа КАК Группа ИЗ ПРИХОДЫ КАК ПРИХОДЫ ГДЕ ПРИХОДЫ.Ссылка В (ВЫБРАТЬ ПЕРВЫЕ 1 ВложенныеПРИХОДЫ.Ссылка ИЗ ПРИХОДЫ КАК ВложенныеПРИХОДЫ ГДЕ ВложенныеПРИХОДЫ.Номенклатура = ПРИХОДЫ.Номенклатура И ВложенныеПРИХОДЫ.Ссылка = ПРИХОДЫ.Ссылка УПОРЯДОЧИТЬ ПО ВложенныеПРИХОДЫ.ДатаПРИХОДА УБЫВ) УПОРЯДОЧИТЬ ПО Номенклатура ИТОГИ ПО Номенклатура |
|||
|
26
Maniac
23.05.11
✎
23:43
|
сори там ошибки есть. поправите сами. писал без 1С.
|
|||
|
27
Maniac
23.05.11
✎
23:45
|
ВЫБРАТЬ
ПоступлениеТоваровУслуг.Номенклатура КАК Номенклатура, ПоступлениеТоваровУслуг.Ссылка КАК Ссылка, ПоступлениеТоваровУслуг.Ссылка.Дата КАК ДатаПРИХОДА ПоступлениеТоваровУслуг.Цена КАК Цена ПОМЕСТИТЬ ПРИХОДЫ ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслуг ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Продажи.Номенклатура, Продажи.Цена КАК Цена ИЗ ПРИХОДЫ КАК ПРИХОДЫ ГДЕ ПРИХОДЫ.Ссылка В (ВЫБРАТЬ ПЕРВЫЕ 1 ВложенныеПРИХОДЫ.Ссылка ИЗ ПРИХОДЫ КАК ВложенныеПРИХОДЫ ГДЕ ВложенныеПРИХОДЫ.Номенклатура = ПРИХОДЫ.Номенклатура И ВложенныеПРИХОДЫ.Ссылка = ПРИХОДЫ.Ссылка УПОРЯДОЧИТЬ ПО ВложенныеПРИХОДЫ.ДатаПРИХОДА УБЫВ) УПОРЯДОЧИТЬ ПО Номенклатура ИТОГИ ПО Номенклатура |
|||
|
28
Maniac
23.05.11
✎
23:45
|
ВЫБРАТЬ
Продажи.Номенклатура, Продажи.Цена КАК Цена ИЗ сместо продажи тоже приходы. |
|||
|
29
ho0p
24.05.11
✎
00:16
|
Как то так, только надо добавить условие:
ВЫБРАТЬ ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура, ПоступлениеТоваровУслугТовары.Цена КАК Цена ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура, МАКСИМУМ(ПоступлениеТоваровУслугТовары.Ссылка.Дата) КАК Дата ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары СГРУППИРОВАТЬ ПО ПоступлениеТоваровУслугТовары.Номенклатура) КАК ВложенныйЗапрос ПО ПоступлениеТоваровУслугТовары.Номенклатура = ВложенныйЗапрос.Номенклатура И ПоступлениеТоваровУслугТовары.Ссылка.Дата = ВложенныйЗапрос.Дата |
|||
|
30
Пип Пибип
25.05.11
✎
09:35
|
Совсем забыл. Спасибо!
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |