Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Последние цены прихода (число прочтений - 1567 )
AAA_CHEL
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 46
Зарегистрирован: 19. Апреля 2009
Последние цены прихода
14. Мая 2009 :: 03:58
Печать  
Коллеги, помогите, никак не получается написать запрос, выбирающий из регистра ПартиинНаличие последние цены прихода в разрезе Номенклатура,Контрагент, то есть мне для каждой номенклатуры надо иметь последние цены каждого поставщика с конкретизацией по документу прихода. У меня даже без получения документа какая то хрень выходит, первое поле выборки для многих записей пустое:


     ТекстЗапроса = "
     |SELECT
     |      MAX(DTOS(Jr.Date) + Jr.Time + Jr.IdDoc) AS ДатаВремяIddoc,
     |      $Рег.Номенклатура                       AS [Номенклатура    $Справочник.Номенклатура],
    |   Отбор.ParentVal                         AS [Контрагент      $Справочник.Контрагенты]
    |FROM
     |      $Регистр.ПартииНаличие AS Рег
    |LEFT JOIN
    |       1SJOURN Jr ON (Рег.IdDoc  = Jr.IdDoc) AND
    |                  (Рег.DebKred = 0) AND
    | "                +  УсловиеDateЦен + " 
    |LEFT JOIN
    |       1SCRDOC Отбор ON (Отбор.ChildID  = Рег.IdDoc) AND
    |                        (Отбор. MDID    = $ГрафаОтбора.Контрагент)
     |GROUP BY $Рег.Номенклатура,Отбор.ParentVal";

  
Наверх
 
IP записан
 
AAA_CHEL
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 46
Зарегистрирован: 19. Апреля 2009
Re: Последние цены прихода
Ответ #1 - 14. Мая 2009 :: 04:17
Печать  
Я хотел этот запрос потом оформить в поодзапрос и уже тянуть нужные суммы и количестов из ПартииНаличие, но у меня почему то выбирается совсем не те контрагенты, почти везде один и тот же
  
Наверх
 
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: Последние цены прихода
Ответ #2 - 14. Мая 2009 :: 05:24
Печать  
AAA_CHEL писал(а) 14. Мая 2009 :: 03:58:
     ТекстЗапроса = "
     |SELECT
     |      MAX(DTOS(Jr.Date) + Jr.Time + Jr.IdDoc) AS ДатаВремяIddoc,
     |      $Рег.Номенклатура                       AS [Номенклатура    $Справочник.Номенклатура],
   |   Отбор.ParentVal                         AS [Контрагент      $Справочник.Контрагенты]
   |FROM
     |      $Регистр.ПартииНаличие AS Рег
   |LEFT JOIN
   |       1SJOURN Jr ON (Рег.IdDoc  = Jr.IdDoc) AND
   |                  (Рег.DebKred = 0) AND
   | "                +  УсловиеDateЦен + "  
   |LEFT JOIN
   |       1SCRDOC Отбор ON (Отбор.ChildID  = Рег.IdDoc) AND
   |                        (Отбор. MDID    = $ГрафаОтбора.Контрагент)
     |GROUP BY $Рег.Номенклатура,Отбор.ParentVal";


Может быть без $?
  
Наверх
 
IP записан
 
ol
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 272
Местоположение: Санкт-Петербург
Зарегистрирован: 24. Января 2009
Пол: Мужской
Re: Последние цены прихода
Ответ #3 - 14. Мая 2009 :: 05:30
Печать  
у меня я нашел такой способ, не уверен, что оптимально

Код
Выбрать все
select
СпрНоменклатура.id as [Номенклатура $Справочник.Номенклатура],
вв1.ДатаВремяIddoc
from $Справочник.Номенклатура СпрНоменклатура
inner join Номенклатура on Номенклатура.val=СпрНоменклатура.id
left join
(
select $Рег.Номенклатура НоменклатураВРег,
max(DTOS(Jr.Date) + Jr.Time + Jr.IdDoc) ДатаВремяIddoc
from $Регистр.ПартииНаличие Рег
left join 1SJOURN Jr ON (Рег.IdDoc  = Jr.IdDoc) AND
	(Рег.DebKred = 0)
group by $Рег.Номенклатура
) вв1 on вв1.НоменклатураВРег=СпрНоменклатура.id
 

  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать