SELECT COALESCE(SUM(tblTime.[Time]),0) AS Hours
FROM tblcustomer
INNER JOIN tblTask ON tblCustomer.[Nr] = tblTask.CustomerNr
LEFT JOIN tblTime ON tblTask.[Id] = tblTime.TaskId
LEFT JOIN tblTimeType ON tblTimeType.[Id] = tblTime.TimeTypeId
WHERE tblCustomer.Category = 'Administratör'
And tblTime.StartDate >='2008-05-01 00:00:00.000'
And tblTime.StartDate < '2008-05-31 23:59:59.999'
And CONVERT(varchar(8),tblTime.StartDate,8) BETWEEN '23:30:00' and '07:29:00' And [tblTimeType].[Name] LIKE '01. Personlig omvårdnad'
Den fungerar ju bra, om tidsintervallet ligger mellan t.ex 16:00 och 23:30. Men hur gör man i ovanstående fall, där tidsintervallet ligger över två dygn (23:30 -- 07:29)
SELECT COALESCE(SUM(tblTime.[Time]),0) AS Hours
FROM tblcustomer
INNER JOIN tblTask ON tblCustomer.[Nr] = tblTask.CustomerNr
LEFT JOIN tblTime ON tblTask.[Id] = tblTime.TaskId
LEFT JOIN tblTimeType ON tblTimeType.[Id] = tblTime.TimeTypeId
WHERE tblCustomer.Category = 'Administratör'
And tblTime.StartDate >='2008-05-01 00:00:00.000'
And tblTime.StartDate < '2008-05-31 23:59:59.999'
And (
CONVERT(varchar(8),tblTime.StartDate,8) BETWEEN '23:30:00' and '23:59:59'
OR CONVERT(varchar(8),tblTime.StartDate,8) BETWEEN '00:00:00' and '07:29:59'
)
And [tblTimeType].[Name] LIKE '01. Personlig omvårdnad'