Ik zit met een probleem waar ik niet zo 1 2 3 uit kom. Ik heb hier een Access database (nee overstappen naar een fatsoenlijke database is helaas geen optie, net zomin dat ik de types van de kolommen kan veranderen), maar daarin de volgende twee tabellen:
TabelA: (alleen relevante kolommen)
cr (Type: Text, NULL values allowed)
zp (Type: Text, NULL values allowed)
Aantal records: 230.000 en groeiend
TabelB: (alleen relevante kolommen)
contractrekening (Type: Text, NULL values allowed)
businesspartner (Type: Text, NULL values allowed)
Aantal records: 54.582, stabiel
Opmerking: Beide kolommen zijn niet UNIQUE, maar de combinatie van beide wel
Wat wil ik? Ik wil alle records uit tabelA die voldoen aan:
1. TabelA.zp = TabelB.businesspartner AND TabelA.cr IS NULL
2. TabelA.cr = TabelB.contractrekening AND TabelA.zp IS NULL
3. TabelA.zp = TabelB.businesspartner AND TabelA.cr = TabelB.contractrekening
Daarvoor had ik drie query's, waarvan ik de query voor optie 1 hier plaats:
SELECT *
FROM TabelA
WHERE TabelA.zp IN (SELECT DISTINCT businesspartner FROM TabelB)
AND TabelA.cr IS NULL
Als ik deze query echter draai, dan hangt of Access, of ik kan wachten tot ik een ons weeg. Blijkbaar is Access hier niet zo happy mee. Heeft iemand een idee hoe ik deze query's kan herschrijven om wel het gewenste resultaat te krijgen zonder meer dan een paar minuten te moeten wachten?
TabelA: (alleen relevante kolommen)
cr (Type: Text, NULL values allowed)
zp (Type: Text, NULL values allowed)
Aantal records: 230.000 en groeiend
TabelB: (alleen relevante kolommen)
contractrekening (Type: Text, NULL values allowed)
businesspartner (Type: Text, NULL values allowed)
Aantal records: 54.582, stabiel
Opmerking: Beide kolommen zijn niet UNIQUE, maar de combinatie van beide wel
Wat wil ik? Ik wil alle records uit tabelA die voldoen aan:
1. TabelA.zp = TabelB.businesspartner AND TabelA.cr IS NULL
2. TabelA.cr = TabelB.contractrekening AND TabelA.zp IS NULL
3. TabelA.zp = TabelB.businesspartner AND TabelA.cr = TabelB.contractrekening
Daarvoor had ik drie query's, waarvan ik de query voor optie 1 hier plaats:
SELECT *
FROM TabelA
WHERE TabelA.zp IN (SELECT DISTINCT businesspartner FROM TabelB)
AND TabelA.cr IS NULL
Als ik deze query echter draai, dan hangt of Access, of ik kan wachten tot ik een ons weeg. Blijkbaar is Access hier niet zo happy mee. Heeft iemand een idee hoe ik deze query's kan herschrijven om wel het gewenste resultaat te krijgen zonder meer dan een paar minuten te moeten wachten?