Beginnersproblemen met opstellen Query wie kan me helpen??

Status
Niet open voor verdere reacties.

djorkaef

Nieuwe gebruiker
Lid geworden
14 sep 2008
Berichten
2
Beste SQL'ers,

Voor een internetapplicatie heb ik n bepaalde query nodig en ik krijgm maar niet gemaakt.

ID Geldeiser Betaler Bedrag
Joris Bart 5.00
Bart Wim 6.00
Tim Wim 3.30

Ik heb 2 access tabellen één tabel transakties en één tabel gebruikers.
Tabel transacties ziet er zoals hierboven uit.

Tabel gebruikers is:
ID Naam
Joris
Bart
Wim
Tim
Kristof
An
...

En nu wil ik een query die een lijst is van de gebruikers met daarnaast het bedrag dat zij in totaal nog moeten betalen/ontvangen.

Met bovenstaande gegevens zou dat moeten worden

Joris 5.00
Bart 1.00
Wim -9.30
Tim 3.30
Kristof 0.00
An 0.00

Iemand die hier vaardig in is?

Verder dan dit soort dingetjes kom ik momenteel niet en daar lukt het dus niet mee:

select gebruikers.naam, sum (transacties.bedrag)
opbrengst
from gebruikers, transacties
where transacties.Geldeiser = gebruikers.naam
group by gebruikers.naam
order by gebruikers.naam, opbrengst

select gebruikers.naam, sum (transacties.bedrag)
verlies
from gebruikers, transacties
where transacties.Betaler = gebruikers.naam
group by gebruikers.naam
order by gebruikers.naam, verlies

Dank bij voorbaat,

Joris
 
select bedrag, naam from gebruikers, transacties where transacties.gebruikersID = gebruikers.gebruikersID;

That's it toch?
 
select bedrag, naam from gebruikers, transacties where transacties.gebruikersID = gebruikers.gebruikersID;

That's it toch?

neen want je zit met betalers en geldeisers. het is de som van alle geldeisers van die naam, min de som van alle betalers van die naam.

in jouw code staat niet eens ergens som, geldeisers of betalers.
 
select bedrag, naam from gebruikers, transacties where transacties.gebruikersID = gebruikers.gebruikersID;

That's it toch?

select sum(bedrag), naam from gebruikers, transacties where transacties.gebruikersID = gebruikers.gebruikersID group by naam, gebruikersID

zo dan ?
 
Volgens mij niet.
Zijn in de transactie tabel de velden Geldeiser en betaler gelinked aan de tabel Gebruiker? Zo niet: Regel dat! Dat is namelijk belangrijk om vast te stellen dat de gebruiker die iets ontvangt dezelfde is als de gebruiker die iets betaald. In de transactietabel zou je vervolgens met ID's gaan werken in plaats van namen.

Vervolgens zou je iets krijgen als:

Select Naam, Sum(Saldo) as Saldo
From
(Select G.Naam, T.Bedrag As Saldo
From Gebruikers G, Transacties T
Where g.naam=t.geldeiser
Union all
Select G.Naam, (-1*T.Bedrag) As Saldo
From Gebruikers G, Transacties T
Where g.naam=t.ontvanger)Subquery
Group by Naam

Overigens heb je het over acces. Ik weet niet of deze query ook in acces werkt. Mogelijk moet je wat syntax aanpassen

Succes!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan