Weken en jaren vergelijken

Status
Niet open voor verdere reacties.

Bounty

Nieuwe gebruiker
Lid geworden
17 apr 2007
Berichten
4
Hallo,
Om gemakkelijk inzicht te krijgen in de ontwikkelingen van een merk of product wil ik de omzetten per week/jaar vergelijken met het voorgaande jaar.

Wanneer ik deze gegevens in een selectie query oproep krijg ik dubbele velden. En wanneer ik de jaren in een kruistabel naast elkaar zet dan kan ik ze niet, via een combobox, per merk selecteren. Er verschijnt dan een melding over vaste naam kolomkop.

Kan iemand mij aangeven hoe je dit het makkelijkst kan doen.
In de bijlage staat een voorbeeld
Boudewijn
 

Bijlagen

Maak drie queries.

Dat is logisch. Je krijgt een cartetisch product omdat je het productID niet in de relatie mee hebt genomen. Als je die meeneemt dan krijg je 1 record: Nomad. Dit is je eerst query.

In de tweede query LEFT JOIN je je VJ met DJ waarbij je alleen geintreseerd bent in de records waarbij DJ.MerkId = Null, en in de laatste query LEFT JOIN je DJ met VJ waarbij je alleen geintreseerd bent in de records waarbij VJ.MerkId = Null

Je hebt nu in de eerste query records staan die in beide jaren voorkwamen, in de tweede query records die alleen vorig jaar voorkwamen en in de laatste query heb je records die alleen dit jaar voor komen.

Als je nu de drie queries samenvoegt m.b.v. het UNION ALL statement, dat is je gewenste resultaat.

Succes.
 
De eerste 3 stappen lukken.

Met het maken van Union all heb ik helaas geen ervaring.
Zou je dit kunnen laten zien.
 
Code:
SELECT A.aap, A.noot, A.mies FROM A
UNION ALL
SELECT B.aap, B.noot, B.mies FROM B
UNION ALL
SELECT C.aap, C.noot, C.mies FROM C
Je moet zorgen dat ieder select statement hetzelfde aantal en type kolom teruggeeft. Dus aap is bijvoorbeeld van het type integer en noot is van het type string.
Met UNION alleen wordt ook nog een DISTINCT over het resultaat uitgevoerd. Dit kost tijd. Als je zeker weet dat er geen dubbele records tussen zitten (in ons geval dus) gebruik je UNION ALL.

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