Een goede grap mag vrienden kosten.
Zo kan je tquery gebruik maken van elke tabel in je database.
"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney
Meestal koppel je een datasource aan een query zodat je de gegevens die uw query returned aan data-aware controls kunt hangen. (Je kunt ook wel de omgekeerde weg bewandelen, maar ik denk niet dat het dat is wat je bedoeld).
Je wilt dus gewoon gegevens uit uw databank halen en die gegevens komen uit 2 verschillende tabellen? Dan geeft Creepy al de oplossing gegeven, maar wat bedoel je nu met die datasources?
https://fgheysels.github.io/
Omdat QueryO en QueryC nogal veel rekenwerk vergen, wil ik ze in aparte threads zetten, zodat ze parallel uitgevoerd kunnen worden
QuerySamen kan zijn gegevens trouwens probleemloos halen uit QueryO óf QueryQ door QuerySamen.DataSource daarop in te stellen. Maar uit beide tegelijk lukt niet.
Is mijn probleem duidelijk?
Een goede grap mag vrienden kosten.
Stel gewoon 1 query op allebei de tabellen om precies de info op te halen die jij wilt.
Als dit echt te traag gaat, ga dan eens kijken naar indexen, en de opbouw van je query. Meestal kan je hiermee nog aardig wat winst halen (goede indexen zijn voor de opvraag snelheid erg belangrijk.. en natuurlijk je query zo maken, dat er zoveel mogelijk aan het begin wordt uitgefilterd)
Over wat voor soort database praten we hiero eigenlijk? En wat staat er allemaal in je tabellen als het opvragen zo traag gaat?
"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney
Een goede grap mag vrienden kosten.
Als je queries gaat stellen voor statistieken, totalen, etc. kan het lang gaan duren ja. Misschien is het dan een idee om bepaalde informatie dubbel, of alvast berekend, op te slaan in de DB, zodat dit het opvragen een stuk versneld. Als die info eenmaal is gegenereerd, is het meestal weinig werk, om deze extra info kloppend te houden. Ok, het is dan niet optimaal meer genormaliseerd, maar als je een flinke snelheidswinst kan boeken op deze manier.. waarom niet..
Welke info je alvast berekend wilt opslaan, is uiteraard afhankelijk van de queries die je stelt.
"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney
1
2
3
4
5
6
7
8
9
10
11
12
13
| SELECT tblDivisies.DivisieAfk, qryBestellingen.Kostenplaats, Sum(qryEURwaarde.EURwaarde) AS EURwaarde,
qryBestellingen.Leveranciersnr, tblLeveranciers.LevNaam, tblLeveranciers.LevNaamToevoeging,
Count(qryEURwaarde.EURwaarde) AS AantalBest, tblKostenplaatsen.Omschrijving AS KsnplaatsOmschrijving
FROM tblDivisies
INNER JOIN (((((qryBestellingen INNER JOIN qryEURwaarde ON qryBestellingen.ID = qryEURwaarde.ID)
INNER JOIN qryKsnplaatsSelectie ON qryBestellingen.Kostenplaats = qryKsnplaatsSelectie.Kostenplaats)
INNER JOIN tblKostenplaatsen ON qryKsnplaatsSelectie.Kostenplaats = tblKostenplaatsen.Kostenplaats)
INNER JOIN qryDivisieSelectie ON tblKostenplaatsen.DivisieID = qryDivisieSelectie.DivisieID)
LEFT JOIN tblLeveranciers ON qryBestellingen.Leveranciersnr = tblLeveranciers.LevNr)
ON tblDivisies.DivisieID = tblKostenplaatsen.DivisieID
GROUP BY tblDivisies.DivisieAfk, qryBestellingen.Kostenplaats, qryBestellingen.Leveranciersnr,
tblLeveranciers.LevNaam, tblLeveranciers.LevNaamToevoeging, tblKostenplaatsen.Omschrijving
ORDER BY tblDivisies.DivisieAfk, qryBestellingen.Kostenplaats, Sum(qryEURwaarde.EURwaarde) DESC; |
Een goede grap mag vrienden kosten.
Verwijderd
Dit soort queries zijn gewoon niet te onderhouden.
Ik denk niet dat een tquery component z'n data uit 2 datasources kan halen (althans niet zoals jij het omschrijft).
Wat je wel kunt doen is de beide queries in de .sql van je 'uiteindelijke' querie stoppen, maar mooier wordt het er allemaal niet van.
Overigens: MS Access? Moet dat ook de database worden? Doe dat jezelf alsjeblieft niet aan. Wil je het perse wel zo doen, vermijdt dan iig. autoinc velden. Gebruik je die wel dan is binnen een maand de integriteit van je database naar de kloten (sorry dat ik het zeg, maar het is wel zo
Overigens.. je kunt dit wel vereenvoudigen door substitutie. Je hebt 2 werkende queries welke je uiteindelijk wilt samenvoegen tot 1 'monster-query'. Noem de 1e even A en de 2e even B. Maak daarna je query zoals je 'm wilt hebben. Dan als laatste A en B weer vervangen door de resp. queries.
Maar eerlijk gezegd zou ik er niet aan beginnen. Je krijgt dan nl. 1 totaal niet-onderhoudbare query. Dat probleem zie je nu al.
Maar voordat ik zaken rigoreus ga omgooien, wil ik zeker weten dat het principe met die aan elkaar gekoppelde query's werkt. Met één query als datasource voor de tweede werkt het natuurlijk, want dat is het principe waarmee je met TQuery's master/detail-relaties maakt. Maar twee query's als gezamenlijke datasource?
Een goede grap mag vrienden kosten.
Maar dit is vast wel weer na te doen m.b.v. sub selects.
dus iets ala:
1
2
3
| select * from blaat where b.id = (select id from bla where dinges='goh') and b2.id = (select id from bla2 where dinges='goh') |
i.p.v.
1
2
3
| select * from blaat b where b.id=query1.id and b.id2=query2.id |
Als uit die 2 queries, dezelfde velden komen, dan kan je die twee queries m.b.v. een union samenvoegen tot 1, maar ik geloof niet dat dat hier het geval is....
Is het btw niet mogelijk, kijkend naar het ontwerp, en naar de gegevens die je wilt opvragen, om de queries opnieuw te maken ZONDER hulp van ACCESS?? Op deze manier kan je zeer waarschijnlijk het 1 en ander aan de queries optimaliseren.
"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney
Waarom? Wat zijn uw ervaringen ermee? Ik gebruik meestal als PK een Long Integer veld die ik zelf iedere keer ga gaan ophogen. Voor sommige tables gebruik ik echter wel een AutoInc maar ik heb er nog geen problemen mee gehad.Op vrijdag 22 februari 2002 17:03 schreef hezik het volgende:
Overigens: MS Access? Moet dat ook de database worden? Doe dat jezelf alsjeblieft niet aan. Wil je het perse wel zo doen, vermijdt dan iig. autoinc velden. Gebruik je die wel dan is binnen een maand de integriteit van je database naar de kloten (sorry dat ik het zeg, maar het is wel zo)
https://fgheysels.github.io/