Asa Medlem sedan dec. 2001 1 860 inlägg Trådstart 18 okt. 2002 20:13 #1 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?
@nders Medlem sedan juni 2000 32 967 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,
L LarsG Medlem sedan dec. 2000 12 464 inlägg select count(*) from (select distinct year(datum),month(datum),day(datum) from visad where bannerid = 4711)
Har jag förstått?
Asa Medlem sedan dec. 2001 1 860 inlägg Hur skriver jag ut detta sen då LarsG?
@nders Medlem sedan juni 2000 32 967 inlägg Ange index 0 för den icke namngivna kolumnen, eller ge den ett alias i SQL-frågan.
Mvh,
Asa Medlem sedan dec. 2001 1 860 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?
@nders Medlem sedan juni 2000 32 967 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,
Asa Medlem sedan dec. 2001 1 860 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.
@nders Medlem sedan juni 2000 32 967 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,
Asa Medlem sedan dec. 2001 1 860 inlägg Hmm - den visar 95 som antal :/
@nders Medlem sedan juni 2000 32 967 inlägg Lagrar du tid också i datumkolumnen? Då kan det nog bli så, eftersom det blir väldigt många olika unika.
Mvh,
Asa Medlem sedan dec. 2001 1 860 inlägg Jag vill inte ha med tiden alls!
@nders Medlem sedan juni 2000 32 967 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.
Asa Medlem sedan dec. 2001 1 860 inlägg Okej tackar - ska testa lite!
Asa Medlem sedan dec. 2001 1 860 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?
@nders Medlem sedan juni 2000 32 967 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,
Asa Medlem sedan dec. 2001 1 860 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
Asa Medlem sedan dec. 2001 1 860 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!