29. 03. 2012.
|
#5
|
Domagoj Horvat
Expert
Datum učlanjenja: 24.07.2006
Lokacija: Zagreb
Poruke: 502
Hvala: 22
10 "Hvala" u 8 poruka
|
Citat:
Originalno napisao BraMom
Trebalo bi da može i ovako (TSQL):
Kôd:
SELECT
DATEPART(HH, TimeColumn) AS Hour,
MAX(X) as MaxX
FROM
[Table]
WHERE
TimeColumn > DATEADD(DD, -1, GETDATE())
GROUP BY
DATEPART(HH, TimeColumn)
Ako je bitan i redosled, kad kreće od 16 sati, da ide redom 16,17... pa sledeći dan, onda može ovako:
Kôd:
SELECT
MAX(DATEPART(DD, TimeColumn)) AS Day,
DATEPART(HH, TimeColumn) AS Hour,
MAX(X) as MaxX
FROM
[Table]
WHERE
TimeColumn > DATEADD(DD, -1, GETDATE())
GROUP BY
DATEPART(HH, TimeColumn)
ORDER BY
Day, Hour
|
Hmm...cini mi se da ovo nece radit ako u tabeli nema zapisa za danasnji dan (sto je sasvim realan slucaj ako u proslih 24 sata nije bilo promjene vrijednosti). Zato je, kako je i kolega jablan napisao, nuzna dodatna tabela u kojoj se drze sati (samo int upisi 0-23 [ili 1-24]) i s kojom se tabela zapisa left outer joina.
__________________
postoje ludosti bez kojih je nemoguce ljudsko dostojanstvo
|
|
|