SQL query met UNION ALL van 2 tabellen werkt niet

Status
Niet open voor verdere reacties.

leifoet

Gebruiker
Lid geworden
7 okt 2007
Berichten
326
De bedoeling van de SQL query is het berekenen van het totaal-IN en het totaal-UIT van de UNION-tabellen A en B met identieke velden (en voor een bepaald ID - hier 100).
Onderstaande UNION-code geeft alléén de totalen van de tabel A (en niets van B).
Hoe kan ik de code correct laten werken ?
Dank.

SQL="SELECT "&_
"(Select Sum(Uit) from Tabel_A where ID=100) AS TotUIT, "&_
"(Select sum(In) from Tabel_A where ID=100) AS TotIN "&_

"FROM Tabel_A "&_
"WHERE (ID=100) "&_

"UNION ALL SELECT "&_
"(Select Sum(Uit) from Tabel_B where ID=100) AS TotUIT, "&_
"(Select sum(In) from Tabel_B where ID=100) AS TotIN "&_

"FROM Tabel_B "&_
"WHERE (ID=100)"
 
En doen de queries apart het wél goed (hoe wonderlijk ze ook zijn)?
 
Het actueel eindresultaat van de complete bovenstaande query (met 10 coderegels) is identiek aan de uitvoering van enkel het eerste gedeelte (vóór UNION).
Dé vraag : is het laatste deel (vanaf UNION …) fout of is de complete query niet goed gecodeerd om het sub #1 beoogde resultaat te verkrijgen ?
Dank voor tips.
 
Laatst bewerkt:
Lees mijn reactie nog eens door :). Je gebruikt twee queries, die allebei hetzelfde doen op verschillende tabellen. Elke query zou zelfstandig óók moeten werken. Dus de vraag: heb je het tweede stuk al eens zelfstandig uitgevoerd, zou ik zeker nog eens uitproberen.
 
Als ik de query uitvoer zoals in sub #1 gesteld, is het in en uit-resultaat de optelling van corresponderende records maar alléén uit tabel A (=hetzelfde resultaat als ik het 2de gedeelte vanaf UNION weglaat).
Als ik in de query het bovenste deel (met betrekking tot tabel A) vervang door het onderste gedeelte (tabel B) dan is het resultaat alléén de optelling van de corresponderende records van tabel B.
Mijn vraag blijft : hoe dient de complete query gecodeerd te zijn om het 'UNION'-in en uit-resultaat van beide tabellen (samen) te krijgen of hoe dienen de 'twee queries' aan elkaar gekoppeld te worden aan/met UNION ALL ?
 
Als ik deze query gebruik
PHP:
SELECT Sum([Uit]) As TotUit, Sum([In]) AS TotIN FROM Tabel_A WHERE [ID]=100
UNION ALL SELECT Sum([Uit]) As TotUit, Sum([In]) AS TotIN FROM Tabel_B WHERE [ID]=100;
krijg ik een perfect resultaat. Jouw query doet bij mij niks. Maar ik test 'm in Access, en daar hoef je niet zo ingewikkeld te werken.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan