Query samenvoegen

Status
Niet open voor verdere reacties.
Kan ik hem mailen, want er staan wat dingen in van het bedrijf die ik liever niet allemaal op internet plaats.
 
Dat kan.

Michel
 
Laatst bewerkt:
Ik zou hem zo nog wel wat aanpassen, vond mijn baas een prettiger idee.
 
Prima, ik wacht wel af...

Michel
 
Dank je alvast voor de moeite. Ik ga er morgen even naar kijken.
 
Allereerst moet ik je toch wel feliciteren; ik heb je db nu al een paar keer gezien in verschillende varianten, maar ik heb nog steeds geen flauw idee waar ik naar zit te kijken; een knappe prestatie ;)
De reden dat de onderste twee queryregels hetzelfde resultaat laten zien, komt omdat je weliswaar twee aparte queries voor elke regel gebruikt, maar de queries zijn zo ongeveer gelijk, en filteren allebei op Januari.

SELECT Sum((Kolommenbalans.Hel)*(Seizoenspatroon.Maand)*-1) AS Hel1, Sum((Kolommenbalans.Heij)*(Seizoenspatroon.Maand)*-1) AS Heij1, Sum((Kolommenbalans.La)*(Seizoenspatroon.Maand)*-1) AS La1, Sum((Kolommenbalans.Ho)*(Seizoenspatroon.Maand)*-1) AS Ho1, Sum((Kolommenbalans.Sport)*(Seizoenspatroon.Maand)*-1) AS Sport1, Sum((Kolommenbalans.Heij)*(Seizoenspatroon.Maand)*-1) AS Lob1, Sum((Kolommenbalans.He)*(Seizoenspatroon.Maand)*-1) AS He1, Sum((Kolommenbalans.[Onroerend goed])*(Seizoenspatroon.Maand)*-1) AS [Onroerend goed1], Sum((Kolommenbalans.FE)*(Seizoenspatroon.Maand)*-1) AS FE1, Sum((Kolommenbalans.Pak)*(Seizoenspatroon.Maand)*-1) AS Pak1, Sum((Kolommenbalans.HBE)*(Seizoenspatroon.Maand)*-1) AS HBE1, "Kostprijs maand" AS Omschrijving
FROM Kolommenbalans, Seizoenspatroon
WHERE (((Seizoenspatroon.Omschrijving)="Januari") AND ((Kolommenbalans.Rekening)>=70000 And (Kolommenbalans.Rekening)<80000));


SELECT Sum((Kolommenbalans.Hel)*(Seizoenspatroon.Cumulatief)*-1) AS Hel1, Sum((Kolommenbalans.Heij)*(Seizoenspatroon.Cumulatief)*-1) AS Heij1, Sum((Kolommenbalans.La)*(Seizoenspatroon.Cumulatief)*-1) AS La1, Sum((Kolommenbalans.Ho)*(Seizoenspatroon.Cumulatief)*-1) AS Ho1, Sum((Kolommenbalans.Sport)*(Seizoenspatroon.Cumulatief)*-1) AS Sport1, Sum((Kolommenbalans.Heij)*(Seizoenspatroon.Cumulatief)*-1) AS Lob1, Sum((Kolommenbalans.He)*(Seizoenspatroon.Cumulatief)*-1) AS He1, Sum((Kolommenbalans.[Onroerend goed])*(Seizoenspatroon.Cumulatief)*-1) AS [Onroerend goed1], Sum((Kolommenbalans.FE)*(Seizoenspatroon.Cumulatief)*-1) AS FE1, Sum((Kolommenbalans.Pak)*(Seizoenspatroon.Cumulatief)*-1) AS Pak1, Sum((Kolommenbalans.HBE)*(Seizoenspatroon.Cumulatief*-1)) AS HBE1, "Kostprijs cum" AS Omschrijving
FROM Kolommenbalans, Seizoenspatroon
WHERE (((Kolommenbalans.Rekening)>=70000 And (Kolommenbalans.Rekening)<80000) AND ((Seizoenspatroon.Omschrijving)="Januari"));

Ik denk dat daar je probleem ligt. Het lijkt mij namelijk niet dat je in de query van februari data van januari wilt gebruiken...

Michel
 
Dit klopt ook, maar de ene keer gebruiken ze het cumulatieve seizoenspatroon en de andere keer die van de maand. Voor februari, staat er ook daadwerkelijk februari, maar dan werkt hij nog niet goed.

Maar je hebt geen idee waar je naar zit te kijken, hoe bedoel je :).
 
Je queries Omzet en Omzettenmaand bijvoorbeeld, zijn identiek, en gebruiken dezelfde filtering, namelijk "Januari". Als je deze queries ook in Februari gebruikt, heb je denk ik toch een probleem, niet?

Ik weet ook niet wat je wilt zien; de totaalquery <Samenvoegen Januari> geeft voor de maandcijfers en de cumulatieve cijfers dezelfde getallen. Voor Januari zou dat ook zo moeten zijn, omdat je maar cijfers over één maand hebt. Voor februari moeten de cumulatieve cijfers Januari+Februari zijn, en de maandcijfers Februari. Daar verwacht ik dan ook verschillende cijfers voor Maand en cumulatief, maar die zie ik dus niet. Kijk ik naar de bronqueries die je gebruikt, dan zie ik daar als filtering Januari staan; dat verklaart voor mij een hele hoop!

Het helpt ook niet, dat ik niet snap waar ik naar zit te kijken; de cijfertjes zeggen mij helemaal niks; wat mij betreft ben je een staatsgreep aan het plannen, en is dit het geheimschrift dat je gebruikt waarmee je communiceert met je medestrijders.... Ik snap bijvoorbeeld niet waar hoe de cijfers gerelateerd zijn; voor mij staan er wat willekeurige cijfers in Seizoenspatroon, die vermenigvuldigd worden met totalen die je uit een andere tabel haalt. Ik kan er weinig chocola van maken...
Desalniettemin, ga ik toch een poging wagen!

Michel
 
Het is een opbouw van een Management Informatiesysteem. De cijfers in de seizoenspatronen komen op 1 uit, ofwel 100%, op deze manier is het budget voor het gehele jaar verdeeld.

De gedachten achter de queries kloppen en zijn als volgt.

Voor de cumulatieven doet hij een cijfer uit de kolommenbalans die voldoet aan een bepaald criteria keer het cumulatieve seizoenspatroon voor februari (bijv. 0,14) voor de maand doet hij het maand seizoenspatroon van februari (bijv 0,7). Ik hoop dat ik je hier wat mee hebt geholpen.
 
Laatst bewerkt:
Begin 'm te snappen :) Hoopte eigenlijk stiekem een beetje op de staatsgreep... Ik heb in mijn eigen versie een kolom Maandnr gezet, zodat ik kan sorteren op de juiste maandvolgorde, en dan zien de cijfers er een stuk logischer uit...

Michel
 
Laatst bewerkt:
Sorry ik moet je teleurstellen :p.Volgende keer misschien!
 
Heb er naar gekeken, maar ben er nog niet helemaal uit.... Kom er nog op terug!

Michel
 
Nu ik de opzet een beetje snap, vermoed ik dat je de totaalberekeningen niet helemaal goed totaliseert. Als je de totalen voor Februari wilt afzetten voor de totalen over het gehele boekjaar, dan moet je voor het laatste de waarden de maand in de verzamelqueries Kosten en KostenMaand instellen op Februari.
Omdat dezelfde queries ook gebruikt worden voor Januari, kloppen die waarden dan niet meer.
De oplossing lijkt dan ook te zijn, om voor elke maand een aparte totaal Kosten en KostenMaand te maken, en die aan te roepen in de verschillende totaalqueries Januari en Februari.
Ik vraag me af, of je wel de meest handige constructie hebt bedacht...

Michel
 
Duidelijk, ik stel inderdaad in de verzamelqueries januari dan wel februari etc in. Ik dacht dat ik het daarmee voldoende afving, maar nee dus. Het probleem is dat er ongeveer nog 5 van dat soorten berekeningen uitgevoerd moeten worden. Ik krijg dan in totaal 60 queries wat de beheersbaarheid niet ten goede komt. Misschien nog een andere suggestie om het beter in elkaar te zetten?
 
Het simpelste zou zijn als je een datumveld aan de kolommenbalans kon toevoegen, dan kun je het seizoenspatroon er aan koppelen, en is het wat makkelijker om de totalen te berekenen. Je kunt dan voor de balans een kruistabel maken die de maanden netjes onder elkaar zet bijvoorbeeld. Of als kolomkop.

Ik zal nog eens zoeken naar een oplossing met de huidige tabellen. BIjvoorbeeld via een formulier waarbij je de queries per keer opbouwt. Dan heb je aan één query namelijk wel genoeg.

Michel
 
Ja ik kan de kolommenbalans ook 12x maken. Misschien is dat gemakkelijk. Ik heb echter ook nog een model met werkelijke cijfers en deze moet ik vergelijken met de kolommenbalans. Dan zou ik iedere maand de kolommenbalans van de juiste maand hierbij moeten nemen. Bedoel je zoiets?

Ik heb nog een vraag tussendoor over een query.

SELECT Orders.Ordernummer, Orders.Artikelcode, Orders.[Omschrijving 1 en 2], Orders.Machinenummer, [Aantal besteld]*0.9 AS Expr1
FROM Orders INNER JOIN machine ON Orders.Machinenummer = machine.Machine
WHERE (("IF">500 And ([Aantal besteld]*0.9)<1000));

Hij moet wanneer aantal besteld tussen de 500 en 1000 aantal besteld * 0,9 doen, wanneer tussen 0 en 500 * 1,2 etc. Hoe gebruik ik de if statements juist?
 
Heb je dit al geprobeerd?

SELECT Orders.Ordernummer, Orders.Artikelcode, Orders.[Omschrijving 1 en 2], Orders.Machinenummer, [Aantal besteld]*0.9 AS Expr1
FROM Orders INNER JOIN machine ON Orders.Machinenummer = machine.Machine
WHERE (([Aantal besteld]*0.9) Between 500 AND 1000)

Michel
 
Dank je wel werkte! Nog verder gekomen met het andere onderwerp?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan