26. april 2010 - 11:19Der er
4 kommentarer og 1 løsning
Problemer med AS i SQL
Jeg har en tabel pageload(url varchar(200), entrytime smalldatetime)
Jeg vil have en liste over hvor mange page loads, der har vaeret de sidste 24 timer fordelt paa timer.
DERFOR:
SELECT COUNT(*) AS n, DATEPART(hour, entrytime) AS h FROM pageload WHERE DATEDIFF(hour, entrytime, GETDATE()) < 24 GROUP BY h ORDER BY n DESC;
Men det giver en fejl:
Invalid column name 'h'
Den snakker om h i GROUP BY aabenbart for dette "virker"
SELECT COUNT(*) AS n, DATEPART(hour, entrytime) FROM pageload WHERE DATEDIFF(hour, entrytime, GETDATE()) < 24 GROUP BY DATEPART(hour, entrytime) ORDER BY n DESC;
Hvad er der galt med AS h og GROUP BY h ?? (Det er ligemeget om den hedder h eller alt muligt andet!)
Med kunstig intelligens skaber HP’s nye OmniBook X 14 en unik og skræddersyet brugeroplevelse målrettet dem, der ønsker høj ydeevne og intelligente funktioner
SELECT COUNT(*) AS n, DATEPART(hour, entrytime) AS h FROM pageload WHERE DATEDIFF(hour, entrytime, GETDATE()) < 24 GROUP BY DATEPART(hour, entrytime) ORDER BY n DESC;
?
I mit 2. eksempel er der ikke noget alias paa DATEPART i select, saa derfor er det svaert at faa fat i den programmatisk...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.