Vijf tabellen samenvoegen in query

Status
Niet open voor verdere reacties.

Pinokkio89

Gebruiker
Lid geworden
23 okt 2006
Berichten
104
Goedendag,

Ik weet hoe twee tabellen samengevoegd kunnen worden in een query, dit kan door middel van UNION (ALL).

Is het ook mogelijk om vijf tabellen samen te voegen met behulp van één query? Er hoeven geen relaties te worden gelegd, in ieder tabel staan drie gelijkwaardige kolommen.

Ik kan natuurlijk tabel 1 & 2 samenvoegen, tabel 3 & 4, vervolgens de nieuwe queries samenvoegen en deze weer samenvoegen met tabel 5, maar ik neem aan dat dit ook eenvoudiger kan.

Alvast bedankt!
 
Zoals je al gezegd hebt: met Union All.
Code:
SELECT * FROM tabel1
UNION ALL
SELECT * FROM tabel2
UNION ALL
SELECT * FROM tabel3
....
UNION ALL
SELECT * FROM tabel5
UNION ALL
 
Ik heb dit een keer geprobeerd, toen werkte het niet. Nu wel, had vorige keer blijkbaar iets verkeerds gedaan...

Hartelijk dank!

PS. Weet je hoe ik van 1000 / 2000 / 3000 etc. in mijn reports 1,000 / 2,000 / 3,000 etc. kan maken (dus zonder decimalen)?
 
Snap het niet helemaal... je geeft een voorbeeld van een getal zonder decimaal (3000) en wilt daar het getal 3,000 zonder decimaal van maken? Wil je dus het getal 3 als resultaat?
 
Je kunt het veld opmaken met de eigenschap Notatie. Dan kun je deze code uitproberen: #,##0
Dit werkt alleen als je de komma als duizendtalscheidingsteken hebt, en de punt als decimaalteken.
Anders werkt dit misschien als Besturingselement van het veld: =Format([Veldnaam];"#,##0")
 
Ik heb een aanvulling op deze vraag.

Van de volgende query:


Code:
select Afdelingscode, RapportGroepDetail, Boekjaar, Kenmerk, Bedrag

from [Qry_BesturingsRapportageInvullen_A] Group By Afdelingscode


UNION ALL

 select Afdelingscode, RapportGroepDetail, Boekjaar, Kenmerk, Bedrag

from [Qry_BesturingsRapportageInvullen_B] Group By Afdelingscode;


Per afdelingscode zijn er meerdere bedragen wat resulteert in meerdere regels. ik wil dus de bedragen summen op basis van afdelingscode. Ik heb al wat dingen geprobeerd en krijg steeds verschillende foutmeldingen, ergens gaat er dus steeds iets fout. Het is vast heel simpel, maar ik kom er niet uit. Hulp is meer dan welkom :)
 
Maak een totalenquery op basis van de eerste query:

Code:
SELECT Afdelingscode, RapportGroepDetail, Boekjaar, Kenmerk, Sum([Bedrag]) As Totaal 
FROM [Qry_BesturingsRapportageInvullen_A] Group By Afdelingscode
Als die goed werkt, kun je hem overnemen in de overige queries. Kijk of deze doet wat je wilt, anders moet je hem nog aanpassen in het Ontwerpscherm. Als hij klopt, gebruik je de SQL ervan als basis voor de UNION.
 
oke, ik ben weer iets verder

Code:
SELECT Qry_BesturingsRapportageInvullen_A.Afdelingscode, Qry_BesturingsRapportageInvullen_A.RapportGroepDetail, Qry_BesturingsRapportageInvullen_A.BoekJaar, Qry_BesturingsRapportageInvullen_A.Kenmerk, Sum(Qry_BesturingsRapportageInvullen_A.Bedrag) AS SumOfBedrag
FROM Qry_BesturingsRapportageInvullen_A
GROUP BY Qry_BesturingsRapportageInvullen_A.Afdelingscode, Qry_BesturingsRapportageInvullen_A.RapportGroepDetail, Qry_BesturingsRapportageInvullen_A.BoekJaar, Qry_BesturingsRapportageInvullen_A.Kenmerk

union

SELECT Qry_BesturingsRapportageInvullen_B.Afdelingscode, Qry_BesturingsRapportageInvullen_B.RapportGroepDetail, Qry_BesturingsRapportageInvullen_B.BoekJaar, Qry_BesturingsRapportageInvullen_B.Kenmerk, Sum(Qry_BesturingsRapportageInvullen_B.Bedrag) AS SumOfBedrag
FROM Qry_BesturingsRapportageInvullen_B
GROUP BY Qry_BesturingsRapportageInvullen_B.Afdelingscode, Qry_BesturingsRapportageInvullen_B.RapportGroepDetail, Qry_BesturingsRapportageInvullen_B.BoekJaar, Qry_BesturingsRapportageInvullen_B.Kenmerk;

maar nu krijg ik nog 2 regels in plaats van 1, hij telt de bedragen dus nog niet op.
 
Laatst bewerkt:
Ik denk dat ik je niet helemaal goed begrepen heb... Ik ging er vanuit dat je de totalen in de deelqueries niet goed kreeg. Nu vermoed ik dat je het eindresultaat van de Union wilt groeperen... En dat kan (logischerwijze) niet, omdat je voor elke deelquery een apart record maakt. Als je dus 5 queries met een Union samenvoegt in één dynaset, dan krijg je minstens 5 records. Wat je wèl weer kunt doen, is een Totaalquery maken op basis van de Union query. In die query kun je weer opnieuw gaan groeperen en optellen.
 
ik wil inderdaad de union query totaliseren, hoewel dat eerste ook niet helemaal goed ging. ;)

even kijken of ik je volg.

Ik maak een nieuwe query op basis van de union en die totaliseer ik?

klinkt goed, ga meteen testen!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan