Имя: Пароль:
1C
1C 7.7
v7: помогите с прямым запросом
0 ks-78
 
09.09.12
20:50
Написал запрос:

   |select
   |        $Спр.Договор [Дог $Справочник.Договоры],
   |          sum(Проводки.sum_)    [Сум]
   |from  
   |   $Справочник.ДоговорыОПС as Спр (nolock)
   |    LEFT JOIN _1sentry as Проводки (nolock) ON Проводки.dtsc1 = $Спр.Договор
   |    LEFT JOIN _1SACCS as Deb (nolock) ON Deb.ID = Проводки.ACCDTID
   |where  
   |    $ПоследнееЗначение.ДоговорыОПС.СостояниеДоговора(Спр.ID,:Дат) = :Сост1
   |and
   |   Проводки.date_time_docid between :НачДата and :КонДата
   |and
   |    (Deb.SCHKOD  = 'Н01.02.01.  '    OR
   |    Deb.SCHKOD  = 'Н01.02.02.  ' OR
   |    Deb.SCHKOD  = 'Н01.02.03.  ' OR
   |    Deb.SCHKOD  = 'Н01.02.04.  ' )
   |AND
   |    (Проводки.dtsc1 IS NULL)
   |group by
   |    $Спр.Договор";

Задача - получить договоры, по которым нет проводок. Запрос пустой. Подскажите плиз, что не так делаю.
1 А л
 
10.09.12
00:54
упрощай, смотри отладку в QA

пытаясь найти исключение в пересечении множеств, ты получил логическое противоречие между этой частью:
   |   Проводки.date_time_docid between :НачДата and :КонДата
и этой
   |    (Проводки.dtsc1 IS NULL)
2 ADirks
 
10.09.12
08:41
лучше так напиши:

select
       $Спр.Договор [Дог $Справочник.Договоры]
from  
  $Справочник.ДоговорыОПС as Спр (nolock)
where
  $ПоследнееЗначение.ДоговорыОПС.СостояниеДоговора(Спр.ID,:Дат) = :Сост1
  AND $Спр.Договор Not IN (
     SELECT
        Проводки.dtsc1
     FROM
        _1sentry as Проводки (nolock)
        ....
     WHERE
        ....
  )

будет понятнее.
Да, и sum(Проводки.sum_)  в селекте выглядит по меньшей мере странно, учитывая поставленную задачу.
3 olegves
 
10.09.12
10:20
попробуй

IsNull(Проводки.date_time_docid,:НачДата) between :НачДата and :КонДата
4 ks-78
 
18.09.12
22:59
Спасибо за помощь.
Использовал вариант 2
5 1Сергей
 
19.09.12
06:56
(3) date_time_docid? Ничего не попутал?
6 Mikeware
 
19.09.12
07:34
(5) ты удивишься, но нет. :-)
старая хохма...
Закон Брукера: Даже маленькая практика стоит большой теории.