08. januar 2004 - 08:15Der er
6 kommentarer og 1 løsning
Gruppering + Count af datoer
Jeg har et bannersystem der gemmer en række data i en tabel. Hver gang et banner vises gemmes der en record i en MS SQL database. For at gøre problemet simpelt, antager vi at jeg gemmer BannerID og TimeStamp hvor TimeStamp er en datetime f.eks. "2004-12-12 10:22".
Mit problem er at jeg gerne vil trække en statistik ud for hver dag. Det vil sige et count af hvor mange visninger der har været, pr. dag. Jeg vil helst hvis jeg kunne lave udtrækket direkte i SQL
Jeg har prøvet at lave noget i stil med dette:
SELECT bs.bannerID, bs.timeStamp, (SELECT COUNT(bannerID) FROM banner_stat WHERE datediff(dd,bs.timeStamp,timeStamp) = 0) AS cnt FROM banner_stat bs WHERE bs.bannerID=121
Men det virker ikke efter hensigten, da den jo så kommer til at tælle alle de visninger der har været den 23 november + den 23 oktober etc. sammen til en.... Nogle ideer?
Det er muligt at det ikke kan løses direkte i databasen og det skal laves i ASP
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
SELECT bannerID, COUNT(bannerID) FROM banner_stat WHERE datediff(dd,banner_stat.timeStamp,timeStamp) = 0) AND banner_stat.bannerID=121
Og måske skal der vist GROUP BY på sådan ID kan komme med ud
SELECT bannerID, COUNT(bannerID) FROM banner_stat WHERE datediff(dd,banner_stat.timeStamp,timeStamp) = 0 AND banner_stat.bannerID=121 GROUP BY bannerID
måske det virker med dateformat: dateformat(now(),'YYYY-MM-DD')
SELECT dateformat(banner_stat.timeStamp,'YYYY-MM-DD'), COUNT(bannerID) FROM banner_stat WHERE banner_stat.bannerID=121 GROUP BY dateformat(banner_stat.timeStamp,'YYYY-MM-DD')
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.