webForumDet fria alternativet

Joinproblem mellan två tabeller

5 svar · 595 visningar · startad av eee

eeeMedlem sedan sep. 2005100 inlägg
#1

Är helt ny på det här med join och har skummat igenom forumet utan att lyckas lösa mitt problem, men men nu till saken.

Har två tabeller:
Poang:
id (primärnyckel & räknare) | spelar_id | poang | datum

spelare2006
id | namn

Det jag vill göra är att hämta ut alla poäng en viss spelare har fått under en viss månad och därefter lista hans namn.
Jag får ut poängen och hans id (spelar_id från poangtabellen = id från spelare2006tabellen) med följande kod:

"select spelar_id,sum(poang) as spelarens_poang from poang where datum BETWEEN #2008-01-01 01:00:00# AND #2008-02-15 23:59:59# group by spelar_id"

Dock får jag inte joinen att fungera trots massa olika försök, vill alltså skriva ut namn (från spelare2006) och spelarens_poang och loopa genom alla spelare.

Vore kul om någon förstår min virriga fråga och orkar tipsa lite :)

Edit: Kör med Accessdatabas.

emissionMedlem sedan dec. 19996 721 inlägg
#2

En fråga mer lämpad för SQL-forumet..

select spelar_id,sum(poang) as spelarens_poang,namn  
from poang, spelare2006
where poang.spelar_id=spelare2006.id AND datum BETWEEN #2008-01-01 01:00:00# AND #2008-02-15 23:59:59# 
group by spelar_id,namn

eller

select spelar_id,sum(poang) as spelarens_poang,namn  
from poang
inner join spelare2006 on poang.spelar_id=spelare2006.id
where  AND datum BETWEEN #2008-01-01 01:00:00# AND #2008-02-15 23:59:59# 
group by spelar_id,namn

eller du kanske vill ha med spelare som saknar poängrader också?

select id,sum(poang) as spelarens_poang,namn  
from spelare2006
left outer join on poang.spelar_id=spelare2006.id AND datum BETWEEN #2008-01-01 01:00:00# AND #2008-02-15 23:59:59# 
group by id,namn
eeeMedlem sedan sep. 2005100 inlägg
#3

My bad, sorry för felpostningen :r

Testade din kod:

"select spelar_id,sum(poang) as spelarens_poang,namn from poang, spelare2006 where poang.spelar_id=spelare2006.id AND datum BETWEEN #2008-01-01 01:00:00# AND #2008-02-15 23:59:59# group by spelar_id,namn"

Men får då

The specified field 'poang' could refer to more than one table listed in the FROM clause of your SQL statement.

Testade att byta ut sum(poang) till sum(nutestarvi) men det hjälpte inte heller :(
Okej att fråga här eller ska jag fråga i sqlforumet ist?

aasahMedlem sedan mars 20034 471 inlägg
#4

Felmeddelandet betyder vanligen att du någonstans har en kolumn vars namn finns i båda tabellerna. Vilken tabell vill du ta ut det från? Du får döpa tabellerna och se till att du väljer från rätt tabell.

Men frågan ser lite småskum ut... har du verkligen en TABELL som heter Poang och en KOLUMN i en annan tabell som också heter poang? Kan det vara det som strular den här gången?

Om poängen du ska räkna finns i spelare2006:

select spelar_id, sum(S.poang) as spelarens_poang, namn 
from poang P, spelare2006 S 
where P.spelar_id=S.id AND datum BETWEEN #2008-01-01 01:00:00# AND #2008-02-15 23:59:59# 
group by P.spelar_id, namn

Annars får du byta S.poang till P.poang

eeeMedlem sedan sep. 2005100 inlägg
#5

Tack! Det var ju för att jag hade en poangkolumn i spelare2006 också :)
Stort tack!! Ni är fantastiska!

LarsGMedlem sedan dec. 200012 464 inlägg
#6

Flyttas från ASP

131 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)