GROUP BY YEAR(c_date), MONTH(c_date), DAY(c_date)
eddy1 skrev:
dett averkar ju som om han inte ser skillnad på 2006-01-01 och 2007-01-01 ??
Är du säker på att det är en han?
10 svar · 352 visningar · startad av eddy1
Hej. har suttit många timmar idag med sql men blir tokig..
Jag vill alltså gruppera alla poster i en databas per dag, cellen "c_date" som innehållet datumet är i formatet DateTime.. ''
har provat med datepart men får det inte att funka, fick även detta förslag:
YEAR(c_Date) + MONTH(c_Date) + DAY(c_Date)
men det blir ju en skit konstig summa om det skrivs ut!
Så här ser koden ut nu, IGEN...
Select left(c_date,10), avg(oc) as av from (select count(*) as oc from Hits where id="& Session("id") &" and page_id="& Session("page_id") &" group by left(c_date,10)) dt;
dett averkar ju som om han inte ser skillnad på 2006-01-01 och 2007-01-01 ??
Mvh
GROUP BY YEAR(c_date), MONTH(c_date), DAY(c_date)
eddy1 skrev:
dett averkar ju som om han inte ser skillnad på 2006-01-01 och 2007-01-01 ??
Är du säker på att det är en han?
Fel av mig, jag vet inte hur det är hos er men min heter Lisa och är en hon..
så här blev koden i sql manager express..
Men det funkar ändå inte..
SELECT YEAR(c_Date) AS Expr1, MONTH(c_Date) AS Expr2, DAY(c_Date) AS da, COUNT(*) AS oc
FROM Hits
WHERE (Customer_ID = 3) AND (Page_ID = 1)
GROUP BY YEAR(c_Date), MONTH(c_Date), DAY(c_Date)
ORDER BY Expr1, Expr2, da DESC
detta ger ju fyra fält. JAg vill ju ha datum fältet samt antalet???
Jag skrev aldrig att du skulle ändra fälten i din SELECT-sats. Bara GROUP BY.
jag har provat allt nu...
jag vill bara få till en sats som grupperar efter dagar och skriver ut antal??
Men inte går det...
denna funkar inte, men har jag "LEFT(c_Date, 10)" i group by så funkar det
SELECT LEFT(c_Date, 10) 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)
eddy1 skrev:
denna funkar inte, men har jag "LEFT(c_Date, 10)" i group by så funkar det
Använd det då.
a det funkar ju bara halv bra, inget fel i sql satsen men man vet ju inte formatet på datumet så det är ju osäkert hur många tecken man ska använda till left??
Du har ju säkert rätt med ditt förslag för man ska ju använda datum funktioner..
Men
"GROUP BY YEAR(c_Date), MONTH(c_Date), DAY(c_Date)" är ju okey men för att använda den måste jag använda samma funktion i början på select satsen, alltså
"SELECT YEAR(c_Date), MONTH(c_Date), DAY(c_Date), Count(*) as cn"
annars får man felmeddelande...
Men skriver jag detta ändrar sql manager Express automatiskt till:
SELECT YEAR(c_Date) AS Expr1, MONTH(c_Date) AS Expr2, DAY(c_Date) AS Expr3, COUNT(*) AS oc
då ger ju detta 4 fält... Fan va lurigt detta var..
ÄR det´ta ej möjligt att lösa ?? tyckte ända det var en relativt enkel fråga men ändå inte
SELECT convert(char(10), c_Date, 20) AS Expr1, COUNT(*) AS oc
FROM Hits
WHERE (Page_ID = 1) AND (ID = 3)
GROUP BY convert(char(10), c_Date, 20)
Fan,
Reeespect mannen!! det funkar!