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



Сообщений: 68
Зарегистрирован: 06. Октября 2006
Выбор документов двух видов
06. Октября 2006 :: 11:09
Печать  
|SELECT            
|  Жур.IDDoc as [Док $Документ],            
|  Жур.IDDocDef as Док_вид,      
|  COALESCE($ДокПолис.ДоговорСтрахования, $ДокНач.Договор) as [Договор $Справочник.ДоговораСтрахования]
|FROM            
|  _1SJourn as Жур      
|Left JOIN
|  $Документ.ПолисОСАГО as ДокПолис ON ДокПолис.IDDoc = Жур.IDDoc
|Left JOIN
|  $Документ.НачислениеПоДоговору as ДокНач ON ДокНач.IDDoc = Жур.IDDoc
|WHERE
|  Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~

Данный запрос выдает документы всех видов за период, что не так ?
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Выбор документов двух видов
Ответ #1 - 06. Октября 2006 :: 11:23
Печать  
Может быть INNER join ?
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Выбор документов двух видов
Ответ #2 - 06. Октября 2006 :: 11:24
Печать  
and Жур.iddocdef in ($ВидДокумента.ПолисОСАГО, $ВидДокумента.НачислениеПоДоговору )
  

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



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Выбор документов двух видов
Ответ #3 - 06. Октября 2006 :: 11:25
Печать  
JohnyDeath писал(а) 06. Октября 2006 :: 11:23:
Может быть INNER join ?

выборка будет всегда пустой
  

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



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Выбор документов двух видов
Ответ #4 - 06. Октября 2006 :: 11:27
Печать  
trad писал(а) 06. Октября 2006 :: 11:25:
JohnyDeath писал(а) 06. Октября 2006 :: 11:23:
Может быть INNER join ?

выборка будет всегда пустой

Да, есть такое. Протупил. Это для одного дока прокатило бы
  
Наверх
 
IP записан
 
bidler
Junior Member
**
Отсутствует



Сообщений: 68
Зарегистрирован: 06. Октября 2006
Re: Выбор документов двух видов
Ответ #5 - 06. Октября 2006 :: 11:34
Печать  
Inner пробовал - пусто.
А вот это

and Жур.iddocdef in ($ВидДокумента.ПолисОСАГО,$ВидДокумента.НачислениеПоДоговору )

помогло. Спасибо.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Выбор документов двух видов
Ответ #6 - 06. Октября 2006 :: 11:37
Печать  
OFF
Это, как я понял, у тебя Континент-Страхование?
С UnicusEase не работаете случаем?
  
Наверх
 
IP записан
 
bidler
Junior Member
**
Отсутствует



Сообщений: 68
Зарегистрирован: 06. Октября 2006
Re: Выбор документов двух видов
Ответ #7 - 06. Октября 2006 :: 12:16
Печать  
Только не ругайте сильно. Нужно чтобы в этот запрос выбирались доки в соответствии с договорами выбранными из другого запроса. Запросы по отдельности работают. Как их объединить в один ? Пробую в первый запрос добавить:
|  AND Договор IN (SELECT
|                      Спр.ParentExt as [ДоговорП $Справочник.ДоговораСтрахования]
|             FROM
|                $Справочник.ОбъектыСтрахования as Спр
|             WHERE
|                $Спр.ГосРегЗнакПр like '%' + :РегНомерПр + '%' )
но получаю:
State 42S22, native 207, message [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'Договор'
  
Наверх
 
IP записан
 
bidler
Junior Member
**
Отсутствует



Сообщений: 68
Зарегистрирован: 06. Октября 2006
Re: Выбор документов двух видов
Ответ #8 - 06. Октября 2006 :: 12:18
Печать  
Да, континент. Но я в страховании работаю недавно.
Что такое UnicusEase ?
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Выбор документов двух видов
Ответ #9 - 06. Октября 2006 :: 13:30
Печать  
bidler писал(а) 06. Октября 2006 :: 12:18:
Да, континент. Но я в страховании работаю недавно.
Что такое UnicusEase ?

Это такая программа по учету договоров ОСАГО. Эстонская. В прямом и переносном смысле...  Подмигивание
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Выбор документов двух видов
Ответ #10 - 06. Октября 2006 :: 14:40
Печать  
Ещё один ОФФ:
Сегодня день страховщика. Поздравляю!  Очень довольный
  
Наверх
 
IP записан
 
bidler
Junior Member
**
Отсутствует



Сообщений: 68
Зарегистрирован: 06. Октября 2006
Re: Выбор документов двух видов
Ответ #11 - 09. Октября 2006 :: 06:23
Печать  
Спасибо за поздравление, только сейчас прочитал. Праздновал Подмигивание
Кто-нибудь может помочь с запросом ?
  
Наверх
 
IP записан
 
mc
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 59
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Выбор документов двух видов
Ответ #12 - 10. Октября 2006 :: 17:37
Печать  
может быть тебе это поможет
http://www.1cpp.ru/forum/YaBB.pl?num=1153746303
  
Наверх
 
IP записан
 
Quan
1c++ donor
1c++ power user
Отсутствует


I'm old, bald and ugly.

Сообщений: 273
Местоположение: Новосибирск -- Москва
Зарегистрирован: 20. Мая 2006
Пол: Мужской
Re: Выбор документов двух видов
Ответ #13 - 20. Октября 2006 :: 09:59
Печать  
trad писал(а) 06. Октября 2006 :: 11:24:
and Жур.iddocdef in ($ВидДокумента.ПолисОСАГО, $ВидДокумента.НачислениеПоДоговору )



Еще вариант (фрагмент кода, который живет в stored proc, поэтому без метаимен)

Код
Выбрать все
select
rg620_vt.sp621 as Товар,
rg620_vt.sp7784 as Склад,
rg620_vt.sp7782 as ПоЗаказу,
rg620_vt.sp623 as РезервТовараОстаток,
заказ.клиент as клиент
from rg620 as rg620_vt (nolock)
inner join (
select
' 5VW'+IDDOC as docid
,sp7590 as клиент
from dh7628 (nolock)
union
select
' 5TR'+IDDOC as docid
,sp7524 as клиент
from dh7551 (nolock)
)
as заказ
on заказ.docid=rg620_vt.sp7782
where rg620_vt.period=@lastrez
and (
rg620_vt.sp623 <> 0
) 



Знаю, что неоптимально, но для ночного сбора ежедневной статистики катит на ура Улыбка
  

А для тех, кто не хотел учить SQL, господь сотворил курсоры
Наверх
 
IP записан
 
bidler
Junior Member
**
Отсутствует



Сообщений: 68
Зарегистрирован: 06. Октября 2006
Re: Выбор документов двух видов
Ответ #14 - 24. Октября 2006 :: 11:15
Печать  
|SELECT
|  Жур.IDDoc as [Док $Документ],            
|  Жур.IDDocDef as Док_вид,      
|  COALESCE($ДокПолис.ДоговорСтрахования, $ДокНач.Договор) as [Договор $Справочник.ДоговораСтрахования]
|FROM            
|  _1SJourn as Жур      
|Left JOIN
|  $Документ.ПолисОСАГО as ДокПолис ON ДокПолис.IDDoc = Жур.IDDoc
|Left JOIN
|  $Документ.НачислениеПоДоговору as ДокНач ON ДокНач.IDDoc = Жур.IDDoc   
|WHERE
|  Жур.iddocdef in ($ВидДокумента.ПолисОСАГО, $ВидДокумента.НачислениеПоДоговору ) AND
|  COALESCE($ДокПолис.ДоговорСтрахования, $ДокНач.Договор) IN
|                        (SELECT
|                              Спр.ParentExt
|                        FROM
|                              $Справочник.ОбъектыСтрахования as Спр
|                        WHERE
|                              $Спр.ГосРегЗнакПр like '%' + :РегНомерПр + '%' )";
В таком виде запрос работет.  Вот только нужно из справочника спр., вытащить еще хотя-бы один реквизит. А подзапрос возвращает один. Можно как нибудь извратиться ?
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать