Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Что-то не пойму (число прочтений - 1679 )
Bagirius
Full Member
***
Отсутствует



Сообщений: 135
Зарегистрирован: 19. Февраля 2008
Пол: Мужской
Что-то не пойму
05. Сентября 2008 :: 09:40
Печать  
ТекстЗапроса = "-- qryMaker:Отчет1.2008.09.05.12.14.46
           |SELECT Контрагенты.ID [КонтрагентыСсылка $Справочник.Контрагенты]
           |FROM _1SJOURN AS Журнал
           |      RIGHT OUTER JOIN $Документ.РасходнаяНакладнаяТ AS РасходнаяНакладнаяТ ON Журнал.IDDOC = РасходнаяНакладнаяТ.IDDOC
           |      RIGHT OUTER JOIN $Документ.РасходнаяБух AS РасходнаяБух ON Журнал.IDDOC = РасходнаяБух.IDDOC
           |      RIGHT OUTER JOIN $Документ.ПриходДенег AS ПриходДенег ON Журнал.IDDOC = ПриходДенег.IDDOC
           |      LEFT OUTER JOIN $Справочник.Контрагенты AS Контрагенты ON Контрагенты.ID = $РасходнаяНакладнаяТ.Клиент AND Контрагенты.ID = $РасходнаяБух.Клиент AND Контрагенты.ID = $ПриходДенег.Клиент
           |WHERE ((Журнал.CLOSED & 1) = 1)
           |";

Добавляю связь с Журналом, в выборке ничего нет, что не так я делаю
  
Наверх
ICQ  
IP записан
 
villy
Senior Member
****
Отсутствует



Сообщений: 287
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Что-то не пойму
Ответ #1 - 05. Сентября 2008 :: 09:49
Печать  
помоему условия тута противоречивы. а что ты получить в итоге хочешь? задача какова?
  
Наверх
IP записан
 
Bagirius
Full Member
***
Отсутствует



Сообщений: 135
Зарегистрирован: 19. Февраля 2008
Пол: Мужской
Re: Что-то не пойму
Ответ #2 - 05. Сентября 2008 :: 09:53
Печать  
villy писал(а) 05. Сентября 2008 :: 09:49:
помоему условия тута противоречивы. а что ты получить в итоге хочешь? задача какова?

Хочу получить список всем клиентов в проведенных документах (РасходнаяНакладнаяТ, РасходнаяБух, ПриходДенег).

Это для начала
а в итоге - за определенный период и не список Клиентов, а у Клиента есть ссылка на справочник Сотрудников - в результате надо получить список сотрудников.
Но проблема в этой части
  
Наверх
ICQ  
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Что-то не пойму
Ответ #3 - 05. Сентября 2008 :: 10:10
Печать  
Ну я бы попробовал так:
Код
Выбрать все
Select
DISTINCT ЗапросКонтрагентов.Сотрудник [Сотрудник $Справочник.Сотрудники]
From
(
Select
 СпрСотров.ID as Сотрудник
,ПодзапросДокументов.Контрагент as Контрагент
From
(
Select
$РасходнаяНакладная.Контрагент as КонтрагентРасхНакл
From $Документ.РасходнаяНакладная as РасходнаяНакладная (NOLOCK)
INNER JOIN
_1sJourn as Журн (NOLOCK) ON ((Журн.IDDOC = РасходнаяНакладная.IDDOC) and (Журн.Closed&1=1) and (Журн.Date_Time_Iddoc BETWEEN :НачДата and :КонДата~))
UNION ALL
Select
$РасходнаяНакладнаяБух.Контрагент as КонтрагентРасхНаклБух
From $Документ.РасходнаяНакладнаяБух as РасходнаяНакладнаяБух (NOLOCK)
INNER JOIN
_1sJourn as Журн (NOLOCK) ON ((Журн.IDDOC = РасходнаяНакладнаяБух.IDDOC) and (Журн.Closed&1=1) and (Журн.Date_Time_Iddoc BETWEEN :НачДата and :КонДата~))

) as ПодзапросДокументов
LEFT JOIN
$Справочник.Контрагенты as СпрКонтрагентов (NOLOCK) ON (СпрКонтрагентов.ID = ПодзапросДокументов.Контрагент)
LEFT JOIN
$Справочник.Сотрудники as СпрСотров (NOLOCK) ON ($СпрКонтрагентов.Сотрудник = СпрСотров.ID)
) as ЗапросКонтрагентов 

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



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Что-то не пойму
Ответ #4 - 05. Сентября 2008 :: 10:30
Печать  
right join заменить на left join
и
ON Контрагенты.ID = coalesce($РасходнаяНакладнаяТ.Клиент, $РасходнаяБух.Клиент, $ПриходДенег.Клиент)
  

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



Сообщений: 287
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Что-то не пойму
Ответ #5 - 05. Сентября 2008 :: 15:08
Печать  
... и условие по iddocdef нужно написать
  
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать