Мои данные выглядят следующим образом
TicketID OwnedbyTeamT Createddate ClosedDate
1234 A
1234 A 01/01/2019 01/05/2019
1234 A 10/05/2018 10/07/2018
1234 B 10/04/2019 10/08/2018
1234 finance 11/01/2018 11/11/2018
1234 B 12/02/2018
Теперь я хочу вычислить дату между закрытыми датами для команд A и B, если максимальная закрытая дата для команды A больше, чем максимальная закрытая дата для команды BЕсли оно меньше или равно нулю, я не хочу их видеть. Так, например, я хочу видеть только одну запись, подобную этой:
TicketID (Datediff)result-days
1234 86
, а для других билетов отобразить информацию. Например, если условия не выполняются, то:
TicketID (Datediff)result-days
2456 -1111111
Образец данных за 2456:
TicketID OwnedbyTeamT Createddate ClosedDate
2456 A
2456 A 10/01/2019 10/05/2019
2456 B 08/05/2018 08/07/2018
2456 B 06/04/2019 06/08/2018
2456 finance 11/01/2018 11/11/2018
2456 B 12/02/2018
Я хочу увидеть разницу в днях между 01/05/2019 длякоманда A и
10/08/2018 для команды B.
Вот запрос, который я написал, однако все, что я вижу, это -1111111, любая помощь, пожалуйста?:
SELECT A.incidentid,
( CASE
WHEN Max(B.[build validation]) <> 'No data'
AND Max(A.crfs) <> 'No data'
AND Max(B.[build validation]) < Max(A.crfs) THEN
Datediff(day, Max(B.[build validation]), Max(A.crfs))
ELSE -1111111
END ) AS 'Days-CRF-diff'
FROM (SELECT DISTINCT incidentid,
Iif(( ownedbyteam = 'B'
AND titlet LIKE '%Build validation%' ), Cast(
closeddatetimet AS NVARCHAR(255)), 'No data') AS
'Build Validation'
FROM incidentticketspecifics) B
INNER JOIN (SELECT incidentid,
Iif(( ownedbyteamt = 'B'
OR ownedbyteamt =
'Finance' ),
Cast(
closeddatetimet AS NVARCHAR(255)), 'No data') AS
'CRFS'
FROM incidentticketspecifics
GROUP BY incidentid,
ownedbyteamt,
closeddatetimet) CRF
ON A.incidentid = B.incidentid
GROUP BY A.incidentid