devotionMedlem sedan jan. 20013 582 inlägg Hej! :)
Jag har en tabell; tblTime som bla innehåller kolumnerna StartDate och StopDate.
Jag skulle vilja göra på följande sätt:
Hämta alla poster inom ett visst datumintervall där tiderna ligger inom ett vist tidsintervall.
Tex:
Hämta alla tider som är utförda mellan kl 07:00 och 23:00 för maj månad
Grunden har jag enligt:
sSQL =" 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" _
& " WHERE tblCustomer.Category = '" & sWorkGroupName & "'" _
& " And tblTime.StartDate >='" & tmStartDate & "'" _
& " And tblTime.StartDate < '" & tmStopDate & "'" _
& " And [tblTime].[TimeTypeId] LIKE '0'" _
Denna kod hämtar alla tider inom ett visst datum intervall
Hur får man till det?
Mvh
Henrik
BrimbaMedlem sedan dec. 19995 875 inlägg Detta kanske funkar?
...
WHERE
YEAR(startdate) = tmYear
AND MONTH(startdate) = tmMonth
AND DATEPART(hh, startdate) >= tmStartHour
AND DATEPART(hh, startdate) < tmStopHour
tmYear skall exempelvis vara 2008, tmMonth skall vara 5 och tmStartHour skall vara 7 och tmStopHour 23.
Då får du med alla poster för en viss månad och år som postats mellan 07:00 och 22:59:59. Du får alltså inte med 23:00.
devotionMedlem sedan jan. 20013 582 inlägg Ok, nu har jag testat så här:
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 = 'Sigtuna'
And tblTime.StartDate >='2008-05-01 00:00:00.000' '
And tblTime.StartDate < '2008-05-31 23:59:59.999'
And DATEPART(hh, tblTime.StartDate) >= '16'
And DATEPART(hh, tblTime.StartDate) < '23'
And [tblTimeType].[Name] LIKE '01. Personlig omvårdnad'
Det "verkar" ju fungera...
Men...
Hur gör jag omd et ska vara 16:30, vilket det ska vara... (vilket jag inte skrev i första inlägget...)
och, måste man tänka på något när det gäller WHERE-delen. Typ paranteser...
Mvh
Henrik
LarsGMedlem sedan dec. 200012 464 inlägg where convert(varchar(8),startDate,8) between '16:30:00' and '23:00:00'