query probleem

Status
Niet open voor verdere reacties.

bartrij

Gebruiker
Lid geworden
29 apr 2011
Berichten
14
printscreen.jpgik heb een tabel met omzetgegevens per dag

ik wil graag in een query de totalen naast elkaar vergelijken
wie kan mij op weg helpen?
kruistabel dat lukt mij niet omdat ik teveel kolom koppen krijg

ik wil dus alle dagen en als er die dag geen gegevens waren een 0 of lege waarde

nu blijft het nog gescheiden door het datum veld

ben nog wat verder aan het puzzelen en kom nu tot dit maar nog geen vergelijk op dagbasis mogelijk
 

Bijlagen

  • printscreen1.jpg
    printscreen1.jpg
    98,5 KB · Weergaven: 62
Laatst bewerkt:
Ik snap eerlijk gezegd niet wat je precies aan het doen bent; het lijkt erop alsof je twee kolommen hebt, met dezelfde gegevens maar met verschillende jaren? Dat riekt naar een verkeerde query, en/of tabel.... Kun je geen voorbeeldje maken, want hier kan ik niet zoveel mee.... Of de query-code om mee te beginnen.
 
dank voor reactie

bijgaand de code zoals
ik heb samengesteld uit 2 aparte queries die op jaarbasis gemaakt waren uit een tabel
eerst een met gegevens uit 2010 en daarna query 2 met dezelfde gegevens uit 2011

SELECT [dagtotaal 2011].[Vrkbd 2011], [dagtotaal 2010].[Vrkbd 2010], [dagtotaal 2011].SomVanWvrac, [dagtotaal 2010].SomVanWvrac, [dagtotaal 2011].netto, [dagtotaal 2010].netto, [dagtotaal 2011].SomVanWverp, [dagtotaal 2010].SomVanWverp, [dagtotaal 2011].SomVanReser, [dagtotaal 2010].SomVanReser, [dagtotaal 2011].[brutomarge 2011], [dagtotaal 2011].SomVanActual, [dagtotaal 2010].SomVanActual, [dagtotaal 2011].SomVanITP, [dagtotaal 2010].SomVanITP, [dagtotaal 2010].[brutomarge 2010], [dagtotaal 2011].[bm in percentage2011], [dagtotaal 2010].[bm in percentage2010], [dagtotaal 2011].Datum, [dagtotaal 2010].Datum
FROM (basisgegevens LEFT JOIN [dagtotaal 2010] ON basisgegevens.Datum=[dagtotaal 2010].Datum) LEFT JOIN [dagtotaal 2011] ON basisgegevens.Datum=[dagtotaal 2011].Datum
GROUP BY [dagtotaal 2011].[Vrkbd 2011], [dagtotaal 2010].[Vrkbd 2010], [dagtotaal 2011].SomVanWvrac, [dagtotaal 2010].SomVanWvrac, [dagtotaal 2011].netto, [dagtotaal 2010].netto, [dagtotaal 2011].SomVanWverp, [dagtotaal 2010].SomVanWverp, [dagtotaal 2011].SomVanReser, [dagtotaal 2010].SomVanReser, [dagtotaal 2011].[brutomarge 2011], [dagtotaal 2011].SomVanActual, [dagtotaal 2010].SomVanActual, [dagtotaal 2011].SomVanITP, [dagtotaal 2010].SomVanITP, [dagtotaal 2010].[brutomarge 2010], [dagtotaal 2011].[bm in percentage2011], [dagtotaal 2010].[bm in percentage2010], [dagtotaal 2011].Datum, [dagtotaal 2010].Datum;
 
Code zoals queries en VBA code zien we het liefst opgemaakt met de juiste knoppen. VBA met de Code knop (knop met #) en SQL met de knop <SQL>. Dat leest namelijk wat makkelijker. Ik zal eens kijken of ik chocola kan maen van je query...
 
Ik vermoed dat je inderdaad een vervelende constructie gebruikt, want ik bespeur identieke velden in de tabellen [dagtotaal 2010] en [dagtotaal 2011]. Dat zou dus inhouden, dat ik die gegevens in één tabel zou onderbrengen, niet in twee. En wat doe je dan in 2012, 2013 etc? Ik denk, dat je straks gierend gek wordt van al die duplicaat tabellen....
Bovendien snap ik deze regel al helemaal niet:

Code:
FROM (basisgegevens LEFT JOIN [dagtotaal 2010] ON [COLOR="blue"][B]basisgegevens.Datum=[dagtotaal 2010].Datum[/B][/COLOR] LEFT JOIN [dagtotaal 2011] ON [B][COLOR="red"]basisgegevens.Datum=[dagtotaal 2011].Datum[/COLOR][/B]
Je vergelijkt één datum uit de tabel [basisgegevens] met zowel een datum uit 2010, als uit 2011. Moet je eens uitleggen hoe dat kan...
 
Laatst bewerkt:
hallo octafish
ik ben er uit heb het opgelost middels een extra tabel mety daarin de datums voor de komende jaren en die weer met een join verbonden met de queries
in ieder geval bedankt voor het meedenken,

Bart
 
Het riekt als een lapmiddel, dus ik zou als ik jou was zeker nadenken over een stabielere oplossing voor je probleem...
 
nadenken

klopt inderdaad
ik ben er zelf ook niet echt blij mee
punt is het volgende ik heb een tabel met daar in op dagbasis alle facturen van klanten met daarbij behorende kostenposten zoals inkoopwaarde verwerkingskosten vrachtkosten etc. etc. vanaf 1-1-2010 tot en met laatste werkdag (heden)

vraag is nu hoe kan ik een vergelijk op dagbasis maken tussen bijvoorbeeld de periode 1 januari 2010 tot en met 31 januari 2010 (op te geven door gebruiker) ten opzichte van dezelfde periode in 2011

moet ik dan de tabel splitsen in 2010 en 2011 of wat is in jou optiek een goede oplossing

benieuwd naar je reactie,
Bart
 
In beginsel moet je alles in één tabel houden, lijkt mij. Met queries filter je dan de gegevens per maand/jaar er uit, en die kun je dan wel met elkaar vergelijken. Het opsplitsen in aparte tabellen is absoluut niet nodig.
 
zoals het nu is heb ik alles in 1 tabel maar heb ik 2 queries gemaakt die per jaar terugvragen (een voor de opgegeven periode uit 2010 en een exact gelijke query voor 2011)
hierna onstaat pas het probleem als ik deze wil samenvoegen om te vergelijken 2010 naast 2011; ik heb naast omzet nog 15 andere factuur gerelateerde kolommen uit dezelfde tabel die ik in beide queries meeneem zodat ik dus +/- 30 kolommen heb
 
Wat ik zou doen is een UNION query maken, waarbij je jaar, maand en waarden in dezelfde kolom stopt. Op deze nieuwe query maak je dan een Kruistabel query, waarbij je op Maand groepeert.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan