Ik heb het volgende probleem:
Ik heb een tabel met oude produkten en een tabel met nieuwe produkten in een database. In de tabel met oude produkten staan zo'n 5000 records met ongeveer 25 dezelfe fabrikanten. In de tabel met nieuwe produkten staan zo'n 1000 records met 2 dezelfde fabrikanten.
Nu moet ik een query maken die in de tabel met oude produkten, alle produkten van de 2 fabrikanten die voorkomen in de nieuwe produkttabel verwijderen. De tabellen zien er ongeveer zo uit:
Tabel 1 (oude produkten):
Tabel 2 (nieuwe produkten):
In tabel 2 komen alleen de fabrikanten AAA en CCC voor. Nu is het de bedoeling dat alle records in tabel 1 die als fabrikant AAA en CCC hebben verwijderd worden. Ik maakte daarom de volgende query met subquery:
Nu krijg ik als foutmelding: at most one record can returned by this subquery. De foutmelding spreekt boekdelen. Is er een andere manier om dit te bewerkstelligen. Of moet ik in VB een loopje maken die het fabrikant voor fabrikant doet.
Alvast bedankt,
Theo Heemskerk
Ik heb een tabel met oude produkten en een tabel met nieuwe produkten in een database. In de tabel met oude produkten staan zo'n 5000 records met ongeveer 25 dezelfe fabrikanten. In de tabel met nieuwe produkten staan zo'n 1000 records met 2 dezelfde fabrikanten.
Nu moet ik een query maken die in de tabel met oude produkten, alle produkten van de 2 fabrikanten die voorkomen in de nieuwe produkttabel verwijderen. De tabellen zien er ongeveer zo uit:
Tabel 1 (oude produkten):
| Fabrikant | Produkt |
| AAA | Stenen |
| AAA | Keien |
| AAA | Water |
| BBB | Friet |
| BBB | Mest |
| BBB | Kaas |
| CCC | Hout |
Tabel 2 (nieuwe produkten):
| Fabrikant | Produkt |
| AAA | Groente |
| AAA | Stieren |
| AAA | Prei |
| CCC | Zalm |
In tabel 2 komen alleen de fabrikanten AAA en CCC voor. Nu is het de bedoeling dat alle records in tabel 1 die als fabrikant AAA en CCC hebben verwijderd worden. Ik maakte daarom de volgende query met subquery:
code:
1
| DELETE * FROM produkten1 WHERE fabrikant = (SELECT fabrikant FROM produkten2 GROUP BY fabrikant) |
Nu krijg ik als foutmelding: at most one record can returned by this subquery. De foutmelding spreekt boekdelen. Is er een andere manier om dit te bewerkstelligen. Of moet ik in VB een loopje maken die het fabrikant voor fabrikant doet.
Alvast bedankt,
Theo Heemskerk