Циркуляр Ссылка p‌r‌o‌b‌l‌e‌m в Присоединение к таблицам - PullRequest
0 голосов
/ 06 апреля 2011

У меня есть запрос:

 Select convert(varchar,dateadd(mi,tz.offset,cal.caldate),101) as caldate,
           s.[off],
           s.aban,
           s.ans,
           case when s.[off]  - s.abn_in = 0 then 0 else 1 end as sla,
           g.slgo
          from calend cal left join 
               summ s on cal.caldate = dateadd(mi,tz.offset,s.arrdate)
               inner join gol g on g.id = cal.id
               left outer join zone tz on 
               tz.id = s.arrdate

Вывод:

caldate       off     aban     ans     sla     slgo

04/01/2011    1       0        1       1       60
04/01/2011    2       0        2       1       30
03/12/2011    3       1        2       1       90

Когда я запускаю этот запрос, я получаю ошибки.Проблема, которую я вижу, состоит в том, что зона таблиц и сумма зависят друг от друга.Как мне это исправить?

1 Ответ

2 голосов
/ 07 апреля 2011

Во-первых, позвольте мне сказать, что я не знаю, что вы делаете в этом запросе, поэтому мой ответ может оказаться не тем решением, которое вы ищете.Однако, если единственной проблемой, с которой вы столкнулись, является порядок соединения, почему бы не начать с зоны tz, а затем присоединиться к summ s в этом случае?

select 
    convert(varchar,dateadd(mi,tz.offset,cal.caldate),101) as caldate,
    s.[off],
    s.aban,
    s.ans,
    case when s.[off]  - s.abn_in = 0 then 0 else 1 end as sla,
    g.slgo
from 
    calend cal 
    cross join zone tz 
    left join summ s on cal.caldate = dateadd(mi,tz.offset,s.arrdate) and tz.id = s.arrdate
    inner join gol g on g.id = cal.id

Соединение с зоной больше не осталось.... но было ли это важно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...