Имя: Пароль:
1C
 
Запрос по ценам по разным датам документа
0 wmzdeadman
 
30.07.10
17:29
Пытаюсь склеить в запросе заказы покупателя по определенной номенклатуре и регистр сведений цены номенклатуры
в итоге получаю следующее
http://img237.imageshack.us/img237/2060/81062341.jpg
т.к. по этой номенклатуре цена изменялась три раза то и затраивает результат

Текст запроса

ВЫБРАТЬ
   ВложенныйЗапрос.Ссылка,
   ВложенныйЗапрос.Дата КАК Дата,
   ВложенныйЗапрос.Номенклатура,
   ВложенныйЗапрос.Цена,
   ВложенныйЗапрос.Период,
   ВложенныйЗапрос.ТипЦен
ИЗ
   (ВЫБРАТЬ
       ЗаказПокупателяТовары.Ссылка КАК Ссылка,
       ЗаказПокупателяТовары.Ссылка.Дата КАК Дата,
       ЗаказПокупателяТовары.Номенклатура КАК Номенклатура,
       ЦеныНоменклатуры.Цена КАК Цена,
       МАКСИМУМ(ЦеныНоменклатуры.Период) КАК Период,
       ЦеныНоменклатуры.ТипЦен КАК ТипЦен
   ИЗ
       РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
           ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
           ПО ЦеныНоменклатуры.Номенклатура = ЗаказПокупателяТовары.Номенклатура
               И ЦеныНоменклатуры.ТипЦен = ЗаказПокупателяТовары.Ссылка.ДоговорКонтрагента.ТипЦен
   ГДЕ
       ЗаказПокупателяТовары.Ссылка.Дата >= ЦеныНоменклатуры.Период
       И ЗаказПокупателяТовары.Ссылка.Контрагент = &Контрагент
       И ЗаказПокупателяТовары.Ссылка.Дата МЕЖДУ &НП И &КП
       И ЦеныНоменклатуры.Номенклатура = &Номенклатура
   
   СГРУППИРОВАТЬ ПО
       ЗаказПокупателяТовары.Ссылка,
       ЗаказПокупателяТовары.Ссылка.Дата,
       ЗаказПокупателяТовары.Номенклатура,
       ЦеныНоменклатуры.Цена,
       ЦеныНоменклатуры.ТипЦен) КАК ВложенныйЗапрос

УПОРЯДОЧИТЬ ПО
   Дата
1 wmzdeadman
 
30.07.10
17:29
срез последних не нужен, т.к. смотрю все документы и хочу видеть по каждому какая цена была в этом периоде
2 wmzdeadman
 
30.07.10
17:31
вроде условие же стоит
ЗаказПокупателяТовары.Ссылка.Дата >= ЦеныНоменклатуры.Период
и группировка такая
МАКСИМУМ(ЦеныНоменклатуры.Период) КАК Период,

в чем ошибка? кто подскажет
3 Andry888
 
30.07.10
17:31
4 Mitriy
 
30.07.10
17:32
(2) регистр сведений тоже периодический, а я не вижу у тебя условия на период регистра...
5 wmzdeadman
 
30.07.10
17:33
(4) а где он должен стоять?
6 wmzdeadman
 
30.07.10
17:34
(4) точнее зачем он нужен
7 Mitriy
 
30.07.10
17:35
(5) в смысле, условие в (2) не катит... смотри (3)
8 Mitriy
 
30.07.10
17:36
(6) тебе нужна цена с максимальной датой на дату документа...
9 Mitriy
 
30.07.10
17:36
(8)+ то бишь самая большая из тех, которые не больше даты документа...
10 Mitriy
 
30.07.10
17:37
(9)+ самая большая дата, которая период в регистре...
11 Mitriy
 
30.07.10
17:38
заговариваюсь... пора под душ...
12 wmzdeadman
 
30.07.10
17:45
спасибо почитаю (3), только мне через временную таблицу не надо
13 sash-ml
 
30.07.10
17:53
лови, учись

ВЫБРАТЬ
   ЦеныНоменклатуры.Цена,
   ВложенныйЗапрос.ПериодЦены,
   ВложенныйЗапрос.Номенклатура,
   ВложенныйЗапрос.Ссылка
ИЗ
   (ВЫБРАТЬ ПЕРВЫЕ 100
       МАКСИМУМ(ЦеныНоменклатуры.Период) КАК ПериодЦены,
       РеализацияТоваровУслугУслуги.Номенклатура КАК Номенклатура,
       РеализацияТоваровУслугУслуги.Ссылка КАК Ссылка
   ИЗ
       Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслугУслуги
           ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
           ПО РеализацияТоваровУслугУслуги.Номенклатура = ЦеныНоменклатуры.Номенклатура
               И РеализацияТоваровУслугУслуги.Ссылка.Дата >= ЦеныНоменклатуры.Период
   
   СГРУППИРОВАТЬ ПО
       РеализацияТоваровУслугУслуги.Номенклатура,
       РеализацияТоваровУслугУслуги.Ссылка
   
   УПОРЯДОЧИТЬ ПО
       РеализацияТоваровУслугУслуги.Ссылка.Дата) КАК ВложенныйЗапрос
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
       ПО ВложенныйЗапрос.ПериодЦены = ЦеныНоменклатуры.Период
           И ВложенныйЗапрос.Номенклатура = ЦеныНоменклатуры.Номенклатура
14 wmzdeadman
 
02.08.10
11:12
спасибо всем, разобрался с утра