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


I Love YaBB 2!

Сообщений: 89
Зарегистрирован: 24. Мая 2006
запрос по подч. спр. - как вывести всех владельцев
19. Сентября 2006 :: 12:00
Печать  
справочник Предзаказ подчинен номенклатуре,реквизиты Контрагент и Количество
Код
Выбрать все
SELECT Номенклатура.ID [НоменклатураСсылка $Справочник.Номенклатура]
	, Менеджеры.ID [МенеджерыСсылка $Справочник.Менеджеры]
	, Sum($Предзаказ.Количество) СуммаКоличество
FROM $Справочник.Номенклатура AS Номенклатура With (NOLOCK)
	JOIN $Справочник.Предзаказ AS Предзаказ With (NOLOCK) ON Номенклатура.ID = Предзаказ.PARENTEXT
	JOIN $Справочник.Контрагенты AS Контрагенты With (NOLOCK) ON Контрагенты.ID = $Предзаказ.Контрагент
	JOIN $Справочник.Менеджеры AS Менеджеры With (NOLOCK) ON $Контрагенты.Менеджер = Менеджеры.ID
WHERE ($Номенклатура.Ожидается = 1)
GROUP BY  Номенклатура.ID
	, Менеджеры.ID
ORDER BY  Номенклатура.ID 


таким запросом получаю таблицу с количествами по товарам и менеджерам
как присоединить Номенклатуру у которой нет значений в подчиненном справочнике?
  
Наверх
 
IP записан
 
Славко
Senior Member
****
Отсутствует



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: запрос по подч. спр. - как вывести всех владел
Ответ #1 - 19. Сентября 2006 :: 12:20
Печать  
вообще то, насколько видно из запроса ты к номенклатуре подсоеденяешь остальные таблицы...
вот только у меня сейчаснет ни BOL ни литературы под рукой чтобы понять все твои мысли, просто я не знаю что делает join без операнда или как его там правильно назвать не знаю, но судя по всему, если подключить "телепата", то тебе нужно всего навсего вместо:
join
нарисовать:
left outer join

т.к. наверное join = inner join

поэтому у тебя в выборке только те товары, у которых есть подчиненные Подзаказы и т.д.
  

Ламер, самый обычный ламер...    сначала мы ...   а потом мы ...
Наверх
wwwICQ  
IP записан
 
1cvirus
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 89
Зарегистрирован: 24. Мая 2006
Re: запрос по подч. спр. - как вывести всех владел
Ответ #2 - 19. Сентября 2006 :: 12:26
Печать  
join = inner join
если поменять на left join то все попадет - и даже то что мне ненадо - попадут предзаказы по контрагентам у которых нет менеджеров
  
Наверх
 
IP записан
 
Славко
Senior Member
****
Отсутствует



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: запрос по подч. спр. - как вывести всех владел
Ответ #3 - 19. Сентября 2006 :: 12:37
Печать  
мне кажется тебе нужно почитать доку и тогда будешь составлять запросы более осмысленно...
или задавай правильно вопросы... а то в тексте запроса ты к Номенклатуре присоединяешь, а у народа спрашиваешь спрашиваешь как тебе эту номенклатуру присоединить...
может ты сам сначала поймешь шо тебе нужно, а потом нас бушь спрашивать то?
ЗЫ я же тебе уже и на этом форуме счоветовал более четко и внятно формулировать вопросы и так чтобы они были понятны не только тебе...
  

Ламер, самый обычный ламер...    сначала мы ...   а потом мы ...
Наверх
wwwICQ  
IP записан
 
1cvirus
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 89
Зарегистрирован: 24. Мая 2006
Re: запрос по подч. спр. - как вывести всех владел
Ответ #4 - 19. Сентября 2006 :: 12:39
Печать  
переформулирую - как правильно написать запрос к подчиненному справочнику , чтобы попали все владельцы
  
Наверх
 
IP записан
 
Славко
Senior Member
****
Отсутствует



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: запрос по подч. спр. - как вывести всех владел
Ответ #5 - 19. Сентября 2006 :: 12:42
Печать  
так ты же сам ответил на свой вопрос то...  Подмигивание
  

Ламер, самый обычный ламер...    сначала мы ...   а потом мы ...
Наверх
wwwICQ  
IP записан
 
1cvirus
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 89
Зарегистрирован: 24. Мая 2006
Re: запрос по подч. спр. - как вывести всех владел
Ответ #6 - 19. Сентября 2006 :: 13:01
Печать  
Цитата:
так ты же сам ответил на свой вопрос то...  Подмигивание

Код
Выбрать все
select Номенклатура.id as [Номенклатура $Справочник.Номенклатура],
     Sum($Предзаказ.Количество) СуммаКоличество
from $Справочник.Номенклатура Номенклатура(nolock)
left outer join $Справочник.Предзаказ Предзаказ(nolock) on
Предзаказ.parentext = Номенклатура.id
WHERE ($Номенклатура.Ожидается = 1)
GROUP BY Номенклатура.id 


без менеджеров получается
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать