gruppera i sql fråga efter dagar
Hej
jag har ett fält i databasen som heter c_date och är av typen "DateTime" nu vill jag gruppera efter varje dag??
Har provat mycket men vet inte riktigt?
Provat med detta men fältet "Expr1" ger ett onstigt värde:
SELECT YEAR(c_Date) + MONTH(c_Date) + DAY(c_Date) AS Expr1, COUNT(*) AS oc
FROM Hits
WHERE (Page_ID = 1) AND (ID = 3)
GROUP BY YEAR(c_Date) + MONTH(c_Date) + DAY(c_Date)
ORDER BY Expr1 DESC
Databsen är MS sql 2005
Mvh
Svara
Sv: gruppera i sql fråga efter dagar
Har inte testat, men följande borde väl fungera...
SELECT DATE(c_Date) AS Expr1, COUNT(*) AS oc
FROM Hits
WHERE (Page_ID = 1) AND (ID = 3)
GROUP BY YEAR(c_Date), MONTH(c_Date), DAY(c_Date)
Svara
Sv:gruppera i sql fråga efter dagar
Då får jag felet:
Date is not recognized built-in function name??
Jag provar koden från sql manager express!!
Svara
Sv: gruppera i sql fråga efter dagar
Då måste du helt enkelt byta ut DATE mot en annan konverteringsfunktion som är implementerad i SQL Server. Nedanstående borde göra det du vill.
SELECT YEAR(c_Date) + '-' + MONTH(c_Date) + '-' + DAY(c_Date) AS Expr1, COUNT(*) AS oc
FROM Hits
WHERE (Page_ID = 1) AND (ID = 3)
GROUP BY YEAR(c_Date), MONTH(c_Date), DAY(c_Date)
Svara
Sv:gruppera i sql fråga efter dagar
Skumt, det gav samma resultat som förut, alltså fältet "Expr1" får värden som 2041, 2040 m.m. Alltså "-" märks inte...YEAR, MONTH, DAY ger bara heltal ??
Att det var så klurigt att gruppera efter dagar?
Svara
Sv: gruppera i sql fråga efter dagar
Vad händer med detta?
SELECT c_Date, COUNT(*) AS oc
FROM Hits
WHERE (Page_ID = 1) AND (ID = 3)
GROUP BY YEAR(c_Date), MONTH(c_Date), DAY(c_Date)
Svara
Sv:gruppera i sql fråga efter dagar
blir fel då, uttrycket måste se likadant ut efter SELECT och efter GROUP BY...
Men llöste det så här nu:
SELECT AVG(oc) AS ac FROM (SELECT CONVERT(char(7), c_Date, 20) AS Expr1, COUNT(*) AS oc FROM Hits WHERE (ID ="& session("id") &" ) AND (Page_ID ="& session("page_id") &") GROUP BY CONVERT(char(7), c_Date, 20)) AS derivedtbl_1 ORDER BY ac DESC
Svara