Avatar billede clausn Nybegynder
18. november 2002 - 10:31 Der er 5 kommentarer og
1 løsning

Udvælgelse i SQL

Hejsa,

Jeg har følg. SQL sætning i Access:

SELECT tblStats.SessionID AS AntalOfSessionID, tblLandekoder.Land
FROM tblStats INNER JOIN tblLandekoder ON tblStats.UserLanguage = tblLandekoder.CodePage
GROUP BY tblLandekoder.Land, tblStats.SessionID;

Værdierne i tblStats.UserLanguage kommer fra det sprog som ens browser er sat op med og tblLandekoder. Codepage er en liste med alle landekoder.

Mit problem er at den udskriver 53 rækker i stedet for at opsumere. I tabellen tblStats logger den alle sider en bruger kommer ind på og derfor findes der måske 15 røkker med den samme SessionID - denne skal selvfølgelig kun tælle for en.

Som det er nu udskriver den:

SessionID - Land
12311 - Danish
12312 - Danish
12314 - Danish
12316 - Swedish
osv. osv.

Jeg ville gerne have den til at udskrive
3 - Danish
1 - Swedish

Håber at I forstår :)
Avatar billede kichian Nybegynder
18. november 2002 - 10:42 #1
SELECT tblLandekoder.Land, count(tblStats.SessionID) as Antal
FROM tblStats INNER JOIN tblLandekoder ON tblStats.UserLanguage = tblLandekoder.CodePage
GROUP BY tblLandekoder.Land;
Avatar billede clausn Nybegynder
18. november 2002 - 10:58 #2
Ja, men den tager ikke højde for at der findes flere SessionID med det samme nummer. Den skal altså kun tælle én gang pr. SessionID.
Avatar billede kichian Nybegynder
18. november 2002 - 11:05 #3
Hvad med
SELECT tblLandekoder.Land, count(distinct tblStats.SessionID) as Antal
FROM tblStats INNER JOIN tblLandekoder ON tblStats.UserLanguage = tblLandekoder.CodePage
GROUP BY tblLandekoder.Land;
Avatar billede clausn Nybegynder
18. november 2002 - 11:13 #4
Der mangler en operator i udtrykket "count(distinct tblStats.SessionID)" siger Access
Avatar billede kichian Nybegynder
18. november 2002 - 11:44 #5
Det virker på SQL-Server ;-)

Men med Access er løsningen :

SELECT tblLandekoder.Land, count(tblStats.SessionID) as Antal
FROM (select distinct SessionID,UserLanguage FROM tblStats) as tblStats INNER JOIN tblLandekoder ON tblStats.UserLanguage = tblLandekoder.CodePage
GROUP BY tblLandekoder.Land;
Avatar billede clausn Nybegynder
18. november 2002 - 11:52 #6
Takker
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester