Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Горячая тема (более 10 ответов) Запрос к реквизитам документов (число прочтений - 5951 )
stans
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 8
Зарегистрирован: 20. Декабря 2011
Запрос к реквизитам документов
20. Декабря 2011 :: 15:30
Печать  
Приветствую! Подскажите, плиз, а то уже мозг сломал

имеем работающий запрос:
|SELECT
     |      Рег.Номенклатура as [Номенклатура $Справочник.Номенклатура],
     |      RIGHT(Рег.ПозицияДокумента,9) [Док $Документ], 
     |      MAX(Рег.ВидДокумента) Док_вид,
     |      Рег.КоличествоОборот as Количество,
     |      Рег.ПродСтоимостьОборот as ПродСтоимость,
     |      Рег.КоличествоВОборот as КоличествоВ,
     |      Рег.ПродСтоимостьВОборот as ПродСтоимостьВ
     |FROM
     |      $РегистрОбороты.Продажи(:НачДатапрод,:КонДатапрод~,
     |                               Документ,   
     |                                                ,Номенклатура IN (SELECT Val FROM #Список),
     |                               (Номенклатура), (Количество,ПродСтоимость,КоличествоВ,ПродСтоимостьВ)) as Рег
     |GROUP BY
     |      Рег.Номенклатура, ВОборот,Рег.ПродСтоимостьВОборот";
   

Все работает, но в регистре нет реквизита Склад, а он очень нужен. Получить его можно из документов, но как это прописать в запросе?

в стандартном запросе можно было написать
|Склад=Регистр.Продажи.ТекущийДокумент.Реализация.Склад,
|Регистр.Продажи.ТекущийДокумент.РеализацияРозница.Склад,

а как поступить тут, а то не хочется после выполнения запроса руками создавать колонку склад и по каждой строке из документа вписывать склад в колонку
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Запрос к реквизитам документов
Ответ #1 - 20. Декабря 2011 :: 17:28
Печать  
Ежели склад входит в графу отбора, то соединение с 1scrdoc, оттуда тащи свой склад
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Запрос к реквизитам документов
Ответ #2 - 20. Декабря 2011 :: 19:24
Печать  
изумительный групбай Круглые глаза
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Запрос к реквизитам документов
Ответ #3 - 20. Декабря 2011 :: 19:26
Печать  
вообще правильный групбай:
GROUP BY Рег.Номенклатура, Рег.ПозицияДокумента

а в частности, по логике этой задачи, вообще нужно без него
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Запрос к реквизитам документов
Ответ #4 - 20. Декабря 2011 :: 19:32
Печать  
если склад реквизит шапки и если не входит в графу отбора, то
select
...
  isnull($Реализация.Склад, $Розница.Склад) as [Склад $Справочник.Склады]
from $РегистрОбороты ...
left join $Документ.Реализация Реализация (nolock) on Реализация.iddoc = right(Рег.ПозицияДокумента, 9)
left join $Документ.РеализацияРозница Розница (nolock) on Розница.iddoc = right(Рег.ПозицияДокумента, 9)
  

1&&2&&3
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Запрос к реквизитам документов
Ответ #5 - 20. Декабря 2011 :: 19:47
Печать  
Это, мот лучше coalesce ?
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Запрос к реквизитам документов
Ответ #6 - 20. Декабря 2011 :: 20:07
Печать  
Eprst писал(а) 20. Декабря 2011 :: 19:47:
Это, мот лучше coalesce ?

чем?
  

1&&2&&3
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Запрос к реквизитам документов
Ответ #7 - 20. Декабря 2011 :: 20:12
Печать  
Если будет >2 табличек, isnull не покатит Улыбка
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Запрос к реквизитам документов
Ответ #8 - 20. Декабря 2011 :: 20:15
Печать  
не покатит, но их же не > 2
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Запрос к реквизитам документов
Ответ #9 - 20. Декабря 2011 :: 20:17
Печать  
ах да, у автора в примере в конце же запятая.
признаю, твои предсказания небезосновательны
  

1&&2&&3
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Запрос к реквизитам документов
Ответ #10 - 20. Декабря 2011 :: 20:39
Печать  
ага, при продажном регистре еще возвраты будут
Улыбка
  
Наверх
 
IP записан
 
stans
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 8
Зарегистрирован: 20. Декабря 2011
Re: Запрос к реквизитам документов
Ответ #11 - 21. Декабря 2011 :: 01:40
Печать  
Eprst писал(а) 20. Декабря 2011 :: 17:28:
Ежели склад входит в графу отбора, то соединение с 1scrdoc, оттуда тащи свой склад


А можешь подсказать как, не получается ни как Печаль
  
Наверх
 
IP записан
 
stans
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 8
Зарегистрирован: 20. Декабря 2011
Re: Запрос к реквизитам документов
Ответ #12 - 21. Декабря 2011 :: 01:40
Печать  
trad писал(а) 20. Декабря 2011 :: 19:26:
вообще правильный групбай:
GROUP BY Рег.Номенклатура, Рег.ПозицияДокумента

а в частности, по логике этой задачи, вообще нужно без него

Да уже привел к нормальному виду  Улыбка
  
Наверх
 
IP записан
 
stans
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 8
Зарегистрирован: 20. Декабря 2011
Re: Запрос к реквизитам документов
Ответ #13 - 21. Декабря 2011 :: 03:52
Печать  
И еще подскажите новичку, как можно реализовать аналоги обычного запроса
Все и Все ВошедшиеВЗапрос?
  
Наверх
 
IP записан
 
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: Запрос к реквизитам документов
Ответ #14 - 21. Декабря 2011 :: 04:57
Печать  
stans писал(а) 21. Декабря 2011 :: 03:52:
И еще подскажите новичку, как можно реализовать аналоги обычного запроса
Все и Все ВошедшиеВЗапрос?


Еще бы помнить, что они делают...
Если мне не изменяет памать, то они нужны для иерархического обхода запроса по группировкам.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Запрос к реквизитам документов
Ответ #15 - 21. Декабря 2011 :: 06:12
Печать  
Satans Claws писал(а) 21. Декабря 2011 :: 04:57:
Еще бы помнить, что они делают...
Если мне не изменяет памать, то они нужны для иерархического обхода запроса по группировкам.


Все - это левое соединение с табличкой, в котором лежит измерение, чтоб в результирующий набор вошли все записи из неё.

Все ВошедшиеВЗапрос - это у тебя и так будет, если хэвинг на функции не наложишь.
(вот только не помню за виртуальные таблицы)
  
Наверх
 
IP записан
 
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: Запрос к реквизитам документов
Ответ #16 - 21. Декабря 2011 :: 07:33
Печать  
Eprst писал(а) 21. Декабря 2011 :: 06:12:
Все - это левое соединение с табличкой, в котором лежит измерение, чтоб в результирующий набор вошли все записи из неё


Наверное, все же фулл джойн с таблицой значений измерения.
Ибо для двух измерений левый джойн не поможет.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Запрос к реквизитам документов
Ответ #17 - 21. Декабря 2011 :: 09:23
Печать  
если в начале селект к табличке справочника, а потом лефт к виртуальной табличке - то поможет
Улыбка
  
Наверх
 
IP записан
 
stans
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 8
Зарегистрирован: 20. Декабря 2011
Re: Запрос к реквизитам документов
Ответ #18 - 21. Декабря 2011 :: 13:15
Печать  
Eprst писал(а) 21. Декабря 2011 :: 09:23:
если в начале селект к табличке справочника, а потом лефт к виртуальной табличке - то поможет
Улыбка


он тогда все склады выдаст, а надо, например:
товар1
     склад1 12
     склад3 14
товар2
     склад1 11
     склад2 3
     склад3 42, то результат хотелось бы получить:
товар1
     склад1 12
     склад2 0
     склад3 14
товар2
     склад1 11
     склад2 3
     склад3 42
а если на складе не было ни одного товара из запроса, то этот склад не включать вообще
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Запрос к реквизитам документов
Ответ #19 - 21. Декабря 2011 :: 13:23
Печать  
Ты определись тогда, тебе ВСЕ нужны или ВСЕ вощедшиеВЗапрос, если второе, то я не помню, реализовано ли это в ВТ Обороты.
Если нет, то просто составь запрос руками к табличке движения регистра, получишь все записи по нужному измерению, т.е все вошедшиеВЗапрос (а не только те, по которым оборот<>0)
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать