Jag loggar besökares aktiviteter på en webbsida (i en Access-databas) och vill kunna lista besökare (per dag och) per domän. Jag har dock bara börjat med att testa per domän och försöker just nu bara få fram unika sessionId och räkna dom.
Jag vill därför kunna välja ut distinkta sessionId, räkna samtliga distinkta sessionId för att få en besökssiffra per dag (och sedan längre ner på sidan kunna lista allt * det som tabellen innehåller, men det är steg två).
Jag får DISTINCT att funka för sig, men inte DISTINCT i kombination med COUNT(*)
Med nedan kod...
SQL = "SELECT DISTINCT sessionId FROM (SELECT COUNT(*) AS noVisitors FROM [tabellen] WHERE viaDomain = '"& domain &"');"
SQL = "SELECT DISTINCT sessionId, (SELECT COUNT(*) AS noVisitors FROM [tabellen] WHERE viaDomain = '"& domain &"') FROM [tabellen] WHERE viaDomain = '"& domain &"'"
Men alltså...om jag nu vill kunna få fram ALLT, *, som finns i min tabell (inte så många saker men bla IP, lang) hur gör jag då för att kombinera detta med ovan?
Jag försökte nu anropa rs("sessionId") i en loop längre ner på sidan för att se om det funkade men, det gjorde det inte.
Item cannot be found in the collection corresponding to the requested name or ordinal.
Lägger man bara till ännu en SELECT (fast då SELECT *) med paranteser i frågan?
Du har ju bara hämtat ut ett antal (som du dessutom inte gett något namn - så du kan bara komma åt den med rs(0).)
sql = "SELECT *, (SELECT COUNT(*) FROM (SELECT DISTINCT sessionId AS noVisitors FROM [tabell] WHERE viaDomain = '"& domain &"')) AS Antal FROM [tabell] WHERE viaDomain = '"& domain &"'"
men frågan är om det inte är bättre att ställa två frågor.
sql = "SELECT *, (SELECT COUNT(*) FROM (SELECT DISTINCT sessionId AS noVisitors FROM [tabell] WHERE viaDomain = '"& domain &"')) AS Antal FROM [tabell] WHERE viaDomain = '"& domain &"'"QUOTE]
Tack, testade detta MEN då är sessionId inte distinct längre.
Loopade upp detta och fick då:
Önskemål:
Jag vill kunna känna av att det är just 3 besökare (distinct och count) fastän det är 5 rader, skriva ut detta OCH sedan kunna loopa upp samtlig ovan information (på ett ungefär) med en och samma SQL-fråga.
Jag kan ju få det att funka genom två frågor, men det måste väl gå med en?
264 ms totalt · 4 externa anrop · v20260731065814-full.1b2494f0