SUM van Saldo
Ik heb de volgende SQL:
SELECT tblSites.[Naam GPT], tblLand.Taal, [MijnGPT-verdiensten].Saldo, [MijnGPT-verdiensten].Punten, Sum([MijnGPT-verdiensten].Saldo) AS [Totale Saldo], Sum([MijnGPT-verdiensten].Punten) AS [Totale Punten]
FROM tblLand INNER JOIN (tblSites INNER JOIN [MijnGPT-verdiensten] ON tblSites.pkSiteID = [MijnGPT-verdiensten].pkSiteID) ON tblLand.pkNationaliteitID = tblSites.pkNationaliteitID
GROUP BY tblSites.[Naam GPT], tblLand.Taal, [MijnGPT-verdiensten].Saldo, [MijnGPT-verdiensten].Punten
ORDER BY tblSites.[Naam GPT];
alleen nu zie ik van elke site de som en niet van alle sites bij elkaar opgeteld... wat dus de bedoeling is.
deze?
Sorry ik snap nix van MSQL mischien als je het eens netjes uitschrijft dat het dan helderder wordt
Schrijf hem eens zo want wat er nu staat is een brei van letters
Sorry ik snap nix van MSQL mischien als je het eens netjes uitschrijft dat het dan helderder wordt
Schrijf hem eens zo want wat er nu staat is een brei van letters
Ok, als ik hem 'netjes' uitschrijf ziet hij er als volgt uit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
SELECT
tblSites.[Naam GPT],
tblLand.Taal, [MijnGPT-verdiensten].Saldo,
[MijnGPT-verdiensten].Punten,
Sum([MijnGPT-verdiensten].Saldo) AS [Totale Saldo],
Sum([MijnGPT-verdiensten].Punten) AS [Totale Punten]
FROM
tblLand
INNER JOIN (tblSites
INNER JOIN [MijnGPT-verdiensten]
ON tblSites.pkSiteID = [MijnGPT-verdiensten].pkSiteID)
ON tblLand.pkNationaliteitID = tblSites.pkNationaliteitID
GROUP BY
tblSites.[Naam GPT],
tblLand.Taal, [MijnGPT-verdiensten].Saldo,
[MijnGPT-verdiensten].Punten
ORDER BY
tblSites.[Naam GPT];
tblSites.[Naam GPT],
tblLand.Taal, [MijnGPT-verdiensten].Saldo,
[MijnGPT-verdiensten].Punten,
Sum([MijnGPT-verdiensten].Saldo) AS [Totale Saldo],
Sum([MijnGPT-verdiensten].Punten) AS [Totale Punten]
FROM
tblLand
INNER JOIN (tblSites
INNER JOIN [MijnGPT-verdiensten]
ON tblSites.pkSiteID = [MijnGPT-verdiensten].pkSiteID)
ON tblLand.pkNationaliteitID = tblSites.pkNationaliteitID
GROUP BY
tblSites.[Naam GPT],
tblLand.Taal, [MijnGPT-verdiensten].Saldo,
[MijnGPT-verdiensten].Punten
ORDER BY
tblSites.[Naam GPT];
ik hoop dat het zo beter leesbaar is...
EDIT:
code toegevoegd
Gewijzigd op 01/01/1970 01:00:00 door John de Boer
En als je de GROUP BY funcie weghaalt?
En waarom staat soms de tabelnaam en soms het veld tussen []?
Robert schreef op 31.10.2006 18:57:
En als je de GROUP BY funcie weghaalt?
Dan krijg ik een melding
"U probeert een query uit te voeren waarbij de opgegeven expressie Naam GPT geen deel uitmaakt van een statische functie"
Klaasjan Boven schreef op 31.10.2006 19:12:
En waarom staat soms de tabelnaam en soms het veld tussen []?
Dat doet Access automatisch als er bijv. al een spatie in voorkomt, om aan te geven dat het 1 geheel is.
Ik heb het alleen maar gekopieerd en geplakt (Ctrl+C dan Ctrl+V)
Gewijzigd op 01/01/1970 01:00:00 door John de Boer
Op een formulier kun je iets soortgelijks maken. Bij de recordbron van het tekstvak doe je zoiets:
=[veld1] + [veld2] + [veld3]
zoiets als
[site1] + [site2] + [site3] + ... [site50] ?
Ja dat is niet zo handig dan. Maar waar in Access wil je het laten zien? Op een formulier, of in een rapport?
En ik wil het in een query laten zien.
Jan Koehoorn schreef op 31.10.2006 23:32:
Ja dat is niet zo handig dan. Maar waar in Access wil je het laten zien? Op een formulier, of in een rapport?
Maakt voor het verhaal niets uit Jan, zowel voor formulieren als voor rapporten kan je gewoon query's die je aan hebt gemaakt gaan gebruiken.
GROUP BY tblSites.[Naam GPT]
de totalen worden dus gegroupeerd per site.
Als je nu op basis van die query een formulier maakt met een formulierkoptekst en een formuliervoettekst, dan kun je wel het totaal laten zien. Het formulier moet een doorlopend formulier zijn. Zorg dat het veld waarin de subtotalen staan er ook in voorkomt.
In het voettekstdeel van je formulier maak je dan een onafhankelijk tekstveld en bij besturingselementbron vul je in: =Som([subtotaal])
Vervang 'subtotaal' door de naam van het veld waarin de subtotalen staan.
Robert schreef op 31.10.2006 23:39:
Maakt voor het verhaal niets uit Jan, zowel voor formulieren als voor rapporten kan je gewoon query's die je aan hebt gemaakt gaan gebruiken.
Jan Koehoorn schreef op 31.10.2006 23:32:
Ja dat is niet zo handig dan. Maar waar in Access wil je het laten zien? Op een formulier, of in een rapport?
Maakt voor het verhaal niets uit Jan, zowel voor formulieren als voor rapporten kan je gewoon query's die je aan hebt gemaakt gaan gebruiken.
Dat klopt, maar in Access kan je bij rapporten ook running totals maken, vandaar mijn vraag.
en wat zijn running totals?
heb nog niet zoveel ervaring met SQL...
Gewijzigd op 01/01/1970 01:00:00 door John de Boer
Maar als je het juist in een query wilt laten zien zou je het kunnen proberen met een SUM zonder GROUP BY. Of dat in Access werkt, weet ik niet uit mijn hoofd. Kwestie van uitproberen.
Maar zoals gezegd, die methode die ik je gaf met een formulier is veel gemakkelijker.
John de Boer schreef op 31.10.2006 21:17:
Dan krijg ik een melding
"U probeert een query uit te voeren waarbij de opgegeven expressie Naam GPT geen deel uitmaakt van een statische functie"
"U probeert een query uit te voeren waarbij de opgegeven expressie Naam GPT geen deel uitmaakt van een statische functie"
Ik vul het normaliter ook in formulieren in.
Gewijzigd op 01/01/1970 01:00:00 door John de Boer
SELECT Sum(test.subtotaal) AS totaal
FROM test;
John de Boer schreef op 31.10.2006 23:52:
Dat had ik al geprobeerd zonder GROUP BY
Ik vul het normaliter ook in formulieren in.
John de Boer schreef op 31.10.2006 21:17:
Dan krijg ik een melding
"U probeert een query uit te voeren waarbij de opgegeven expressie Naam GPT geen deel uitmaakt van een statische functie"
"U probeert een query uit te voeren waarbij de opgegeven expressie Naam GPT geen deel uitmaakt van een statische functie"
Ik vul het normaliter ook in formulieren in.
Die foutmelding krijg je als je gewone kolomnamen in combinatie met statistische functie gebruikt zonder GROUP BY.
Pleur de boel gewoon in een form, zoals ik al voorstelde. Dan krijg je precies wat je wilt, een overzicht met subtotalen en een generaal totaal.
Code (php)
1
2
2
SELECT Sum([MijnGPT-verdiensten].Saldo) AS [Totale saldo],
FROM [MijnGPT-verdiensten];
FROM [MijnGPT-verdiensten];
Hoe dat in zijn werk gaat met formulieren moet ik nog ff uitvissen dan.
Ik kan desnoods wel de 'kale' db opsturen mocht dat nodig zijn...
In ieder geval bedankt Jan!
Gewijzigd op 01/01/1970 01:00:00 door John de Boer
Ga maar eens kijken in de formuliersectie. Je maakt een formulier op basis van een tabel of query. Formulieren in Access zijn bedoeld om gegevens te editen, maar je kunt er ook velden in zetten die een (sub)totaal uitrekenen. Zie een van mijn eerdere posts, daarin leg ik uit hoe. Mocht je er niet uitkomen, dan hoor ik het wel.
Ik heb al wel met formulieren gewerkt (zoals ik al eerder vermeldde).
Ik heb bijv. ook een site over films (hier) waar ik dus de films ook invoer m.b.v. een formulier. Alleen dit is voor mij een stapje hoger.
Gewijzigd op 01/01/1970 01:00:00 door John de Boer