Как указать, что дата является нулевой в sql - PullRequest
0 голосов
/ 31 мая 2019

С помощью следующего кода я надеялся получить записи, которые имеют нулевое значение для поля ClosedDateTimeT, но он показывает только записи, которые имеют значение.Я делаю что-то не так здесь:

SELECT DISTINCT
    t.ticketid,
    t.Sub,
    i.status, 
    i.OwnedByTeam,
    i.OwnedByTeamT,
    i.TypeOptions,
    i.ClosedDateTimeT,
    i.CompletedDateTime,
    i.TitleT 
FROM
    ticket AS t 
INNER JOIN
    Incident AS i ON t.TicketID = i.IncidentID
WHERE
    CAST(t.Sub AS DATE) >= '01-01-2019' 
    AND CAST(t.Sub AS DATE ) <= '05-30-2019'
    AND i.Subcategory = 'Content Request'
    AND (i.TypeOptions = 'New/Initial Submission' OR
         i.TypeOptions = 'Am/Re')
    AND ((i.OwnedByTeamT LIKE '%C - CA%' 
          AND i.TitleT LIKE '%B Build%' 
          AND i.ClosedDateTimeT IS NOT NULL) OR
         (i.OwnedByTeamT LIKE '%C - CA%'
          AND i.TitleT LIKE '%B Build%'
          AND i.ClosedDateTimeT IS NULL) OR
         (i.OwnedByTeamT LIKE '%E - Cl%' 
          AND i.TitleT LIKE '%OP B V%'))

Ответы [ 3 ]

0 голосов
/ 31 мая 2019

Разве вы не имеете в виду что-то подобное?

SELECT DISTINCT t.ticketid
    ,t.Sub
    ,i.STATUS
    ,i.OwnedByTeam
    ,i.OwnedByTeamT
    ,i.TypeOptions
    ,i.ClosedDateTimeT
    ,i.CompletedDateTime
    ,i.TitleT
FROM ticket AS t
INNER JOIN Incident AS i ON t.TicketID = i.IncidentID
WHERE i.ClosedDateTimeT IS NULL
    AND CAST(t.Sub AS DATE) >= '01-01-2019'
    AND CAST(t.Sub AS DATE) <= '05-30-2019'
    AND i.Subcategory = 'Content Request'
    AND (
        i.TypeOptions = 'New/Initial Submission'
        OR i.TypeOptions = 'Am/Re'
        )
    AND (
        (
            i.OwnedByTeamT LIKE '%C - CA%'
            AND i.TitleT LIKE '%B Build%'
            )
        OR (
            i.OwnedByTeamT LIKE '%E - Cl%'
            AND i.TitleT LIKE '%OP B V%'
            )
        )
0 голосов
/ 31 мая 2019

По вашим комментариям я бы просто удалил это поле даты из вашего предложения where.Я также удалил часть, которая повторяла i.OwnedByTeamT, например «% C - CA%» И «Мне нравится»,% B Build% '

Select distinct t.ticketid,
 t.Sub,
 i.status, 
 i.OwnedByTeam,
 i.OwnedByTeamT,
 i.TypeOptions,
 i.ClosedDateTimeT,
 i.CompletedDateTime,
 i.TitleT 

From ticket as t inner join Incident as i on  
t.TicketID=i.IncidentID

where 
CAST(t.Sub AS DATE) >= '01-01-2019' 
AND CAST(t.Sub AS DATE ) <= '05-30-2019'
AND i.Subcategory = 'Content Request'
AND (i.TypeOptions='New/Initial Submission' OR
 i.TypeOptions='Am/Re')
AND (
(i.OwnedByTeamT like '%C - CA%' AND i.TitleT LIKE '%B Build%' 
)
OR (
i.OwnedByTeamT like '%E - Cl%' AND i.TitleT LIKE '%OP B V%')
)
0 голосов
/ 31 мая 2019

Не совсем уверен, с какой проблемой вы столкнулись, но ваш запрос может быть немного упрощен и отформатирован. Обратите внимание, что я также использую ANSI-совместимые литералы даты.

Select distinct t.ticketid
    , t.Sub
    , i.status
    , i.OwnedByTeam
    , i.OwnedByTeamT
    , i.TypeOptions
    , i.ClosedDateTimeT
    , i.CompletedDateTime
    , i.TitleT 
From ticket as t 
inner join Incident as i on t.TicketID=i.IncidentID
where 
    CAST(t.Sub AS DATE) >= '20190101' 
    AND CAST(t.Sub AS DATE ) <= '20190530'
    AND i.Subcategory = 'Content Request'
    AND i.TypeOptions in ('New/Initial Submission', 'Am/Re')
    AND 
    (
        (
            i.OwnedByTeamT like '%C - CA%' 
            AND 
            i.TitleT LIKE '%B Build%'
        )
        OR
        (
            i.OwnedByTeamT like '%E - Cl%' 
            AND 
            i.TitleT LIKE '%OP B V%'
        )
    )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...