Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[Access 2003] Gelinkte tabellen: dubbels vermijden

Pagina: 1
Acties:

  • pjcra
  • Registratie: September 2003
  • Laatst online: 09-09-2020
Ik heb twee tabbelen: Polissen & Informatie

In de tabel polissen bevinden zich al de polisnummers. (unieke waarden) (bv #3153)
In de tabel informatie bevindt zich informatie over de polissen (geen unieke poliswaarden): vb.

polisnr.1 groot 100€
polisnr.1 groen 100€
polisnr.1 tekoop 100€
polisnr.2 klein 100€
polisnr.2 rood 100€
polisnr.2 tekoop 100€
....

Als ik nu tabel polis aan de tabel informatie link, en ik wil dus ENKEL de unieke waarden van de tabel polissen met daarachter hoeveel ze kosten, dan lukt het mij niet. Ik krijg dus elke polisnr. drie keer dus krijg 3153 x 3 resultaten, ipv enkel de unieke 3153 polissen met daar achter de prijs.

Ik heb al geprobeerd met DISTINCT erachter te zetten, maar dan krijg ik toch nog dubbels (een aantal, niet zoveel) (#3166).

(mijn echte SQL code met de distinct =

SELECT DISTINCT Policies.policy_number, Policies.inception_date_policy, Policies.expiration_date, policies_exposures.statin_code_desc
FROM Policies INNER JOIN policies_exposures ON Policies.policy_number = policies_exposures.policy_number
WHERE (((Policies.category)="003" Or (Policies.category)="004" Or (Policies.category)="803" Or (Policies.category)="804"));

Verwijderd

Een veld in tabel 1 met unieke waarden joinen met een veld in tabel 2 met niet-unieke waarden (one-to-many relationship) levert by design meerdere regels op: de basisgedachte is immers dat je alle records in tabel 2 wilt terugkrijgen die overeenkomen met die in tabel 1.
Los daarvan: je zult waarschijnlijk een aggregatiequery willen hebben. Als je de bedragen in een apart veld in de tabel informatie hebt gezet, kun je met een expressie als Sum([informatie]![bedrag]) en een Group By op [polissen]![polisnummer] al een heel eind komen.