AsaMedlem sedan dec. 20011 934 inlägg
Jag har en tabell som heter visad. I den finns fälten
id-räknare
bannerId - tal
datum - datum/tid
För varje gång en banner visas sparas datumet och dess unika id till databasen!
Jag vill nu räkna hur många dagar som en banner har varit aktiv. Hur gör jag?
@ndersMedlem sedan juni 200026 914 inlägg
Jag förstår inte vad frågan har med count att göra? Det borde väl stämma om man tar första visningen och räknar tidsskillnad?
SELECT TOP 1 *, DATEDIFF('d', Now(), datum) AS Livetid FROM visad WHERE bannerId = 1 ORDER BY datum ASC
Jag antar att du använder Access.
Mvh,
LarsGMedlem sedan dec. 200012 465 inlägg
select count(*) from (select distinct year(datum),month(datum),day(datum) from visad where bannerid = 4711)
Har jag förstått?
AsaMedlem sedan dec. 20011 934 inlägg
Hur skriver jag ut detta sen då LarsG?
@ndersMedlem sedan juni 200026 914 inlägg
Ange index 0 för den icke namngivna kolumnen, eller ge den ett alias i SQL-frågan.
Mvh,
AsaMedlem sedan dec. 20011 934 inlägg
Hmm! Okej!
EN bättre förklaring av allt kanske?:
id BannerId datum
137 1 2002-10-16
138 1 2002-10-16
139 1 2002-10-16
140 1 2002-10-16
141 1 2002-10-18
142 1 2002-10-18
143 1 2002-10-18
Den ska bland dessa poster räkna till 2?
@ndersMedlem sedan juni 200026 914 inlägg
Du vill alltså visa antalet unika dagar som en viss banner visats? Då så.
SELECT COUNT(*) AS Antal FROM (SELECT DISTINCT datum FROM visad WHERE bannerId = 1)
Jag antar fortfarande att du använder Access. Om du använder någon annan dbms borde du kunna skriva
SELECT COUNT (DISTINCT datum) AS Antal FROM visad WHERE bannerId = 1
Mvh,
AsaMedlem sedan dec. 20011 934 inlägg
Detta:
<%Set Dagar=Conn.Execute("SELECT COUNT(*) AS Antal FROM (SELECT DISTINCT datum FROM visad WHERE bannerId=" & Request.QueryString("bannerId"))%>
Antal dagar: <%=Dagar("antal")%>
Får felmeddelandet:
Syntaxfel i FROM-instruktion.
@ndersMedlem sedan juni 200026 914 inlägg
Du saknar slutparentes runt din distinct-fråga.
<%Set Dagar=Conn.Execute("SELECT COUNT(*) AS Antal FROM (SELECT DISTINCT datum FROM visad WHERE bannerId=" & Request.QueryString("bannerId") & ")")%>
Mvh,
AsaMedlem sedan dec. 20011 934 inlägg
Hmm - den visar 95 som antal :/
@ndersMedlem sedan juni 200026 914 inlägg
Lagrar du tid också i datumkolumnen? Då kan det nog bli så, eftersom det blir väldigt många olika unika.
Mvh,
AsaMedlem sedan dec. 20011 934 inlägg
AsaMedlem sedan dec. 20011 934 inlägg
Jag vill inte ha med tiden alls!
@ndersMedlem sedan juni 200026 914 inlägg
Det borde väl gå att lösa genom att använda DatePart() i din SELECT DISTINCT-fråga.
Lämnas som uppgift till läsaren. ;)
AsaMedlem sedan dec. 20011 934 inlägg
Okej tackar - ska testa lite!
AsaMedlem sedan dec. 20011 934 inlägg
Men med DatePart kan man väl inte hämta hela datumet me år, mån och dag?
Ooops! Nu posta jag ett nytt inlägg :/ Skulle ha uppdaterat det förra!
Jag skrev SELECT DISTINCT Left(datum,10) .....
Det verka funka men är det säkert att det funkar jämt?
@ndersMedlem sedan juni 200026 914 inlägg
Hmm. Nej, det kanske du har rätt i.
Och Left-varianten är inte säkert att den funkar jämt. Jag kommer dock inte på någon fantastisk lösning just nu. :/
Mvh,
AsaMedlem sedan dec. 20011 934 inlägg
Okej! Tack för all hjälp! Men jag har det med Left kvar! Är dock bara en grej för att se antal dagar bannern varit aktiv!
http://www.gruvsjo.com/default.asp?part=hyr&bannerId=1
LarsGMedlem sedan dec. 200012 465 inlägg
AsaMedlem sedan dec. 20011 934 inlägg
Det funkade inte eller hade jag glömt nåt? Skriv allt som behövs för att skriva ut det om du vill!