Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Как получить строку сотрудников (число прочтений - 1342 )
Admin_Net_1C
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 8
Зарегистрирован: 09. Июня 2007
Как получить строку сотрудников
25. Декабря 2007 :: 10:47
Печать  
Народ подскажите пожалуйста: есть справочник с полями
1) Статус (Перечисление)
2) НомерЗаказа (Число)
3) Контролер (справочник Сотрудники)
4) Грузчик1 (справочник Сотрудники)
5) Грузчик2 (справочник Сотрудники)
Необходимо получить отчет вида:
Номер заказа| Собирали
3521              | Иванов; Петров; Сидоров
Пытаюсь в запросе получить строку из сотрудников и не получается:
ТекстЗапроса = "
|SELECT
|$Спр.НомерЗаказа as Номер,
|(CASE
|WHEN ($Спр.Статус<>:Получен)AND($Спр.Статус<>:Добавлен) THEN
|  (SELECT (Контролер.Descr+';'+Грузчик1.Descr+';'+Грузчик2.Descr) as Сотр
|  FROM $Справочник.Сотрудники as СпрСотр (nolock)
|  INNER JOIN
|    $Справочник.Сотрудники as Контролер ON Контролер.ID = $Спр.Контролер
|  INNER JOIN
|    $Справочник.Сотрудники as Грузчик1 ON Грузчик1.ID = $Спр.Грузчик1
|INNER JOIN
|    $Справочник.Сотрудники as Грузчик2 ON Грузчик2.ID = $Спр.Грузчик2)
|ELSE
|  ''
|END
|) as Собирали
|FROM
|    $Справочник._ДвижениеЗаказов as Спр (nolock)
|WHERE
|    Спр.IsMark = 0";

На выходе пустая строка "Собирали"
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как получить строку сотрудников
Ответ #1 - 25. Декабря 2007 :: 11:05
Печать  
Код
Выбрать все
SELECT DISTINCT
    $Спр.НомерЗаказа as Номер,
    (CASE WHEN ($Спр.Статус <> :Получен) AND ($Спр.Статус <> :Добавлен)
	  THEN RTrim(IsNull(Контролер.Descr, '')) + ';' + RTrim(IsNull(Грузчик1.Descr, '')) + ';' + RTrim(IsNull(Грузчик2.Descr, ''))
	  ELSE ''  
    END) as Собирали
FROM  
    $Справочник._ДвижениеЗаказов as Спр (nolock)
    LEFT JOIN $Справочник.Сотрудники as Контролер (nolock) ON Контролер.ID = $Спр.Контролер
    LEFT JOIN $Справочник.Сотрудники as Грузчик1  (nolock) ON Грузчик1.ID  = $Спр.Грузчик1
    LEFT JOIN $Справочник.Сотрудники as Грузчик2  (nolock) ON Грузчик2.ID  = $Спр.Грузчик2
WHERE (Спр.IsMark = 0) 

  

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


I Love YaBB 2!

Сообщений: 8
Зарегистрирован: 09. Июня 2007
Re: Как получить строку сотрудников
Ответ #2 - 25. Декабря 2007 :: 11:11
Печать  
Спасибо, очень выручил!
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать