selectie op many-to-many relatie met uniek resultaat voor een tabel

Status
Niet open voor verdere reacties.

Marloes83

Gebruiker
Lid geworden
21 aug 2008
Berichten
7
het lijkt me een simpel probleem maar mijn arme hersentjes vinden geen oplossing;

ik heb een tabel met bedrijven, een tabel met contactpersonen en een tussentabel voor deze twee. Ik wil een selectie met voorwaarden op de bedrijventabel doen en voor elk bedrijf slechts één contactpersoon in het resultaat hebben. het is niet belangrijk welk contactpersoon, de eerste de beste is ok.

wie kan mij redden?
alvast heel erg bedankt!

groetjes
Marloes
 
maak een group-by query.

Voorbeeld:

Code:
select first(naam), bedrijf from bedrijven inner join contactpersonen on bedrijven.id = contactpersonen.bedrijfid group by bedrijf

Deze query is verzonnen en zal bij jou niet werken. Maar misschien helpt het?

Enjoy!
 
dat had ik ook al zitten denken, en geprobeerd, maar ik kreeg de foutmelding en volgens mijn boek 'sql voor beginners' moet een 'group by' alle elementen die in de select statment staan, bevatten

Maar mijn sql kennis is heel beperkt dus misschien begrijp 'k het verkeerd,


dit is mijn statment:
Code:
SELECT     dbo.Bedrijven.NrBedrijf AS Expr1, dbo.Bedrijven.Naam, dbo.Bedrijven.Straat, dbo.Bedrijven.Straat1, dbo.Bedrijven.Nummer,
 dbo.Bedrijven.Postbus, dbo.Bedrijven.Postcode, dbo.Bedrijven.Gemeente, dbo.Contactpersonen.Voornaam, dbo.Contactpersonen.Naam AS Expr2,   dbo.Contactpersonen.Aanspreektitel, dbo.BedrContact.Hoofdcontactpersoon, dbo.Functies.Omschrijving
FROM         dbo.Contactpersonen INNER JOIN
                      dbo.BedrContact ON dbo.Contactpersonen.NrContactPersoon = dbo.BedrContact.NrContactPersoon INNER JOIN
                      dbo.Functies ON dbo.BedrContact.Functie = dbo.Functies.Functie RIGHT OUTER JOIN
                      dbo.Bedrijven ON dbo.BedrContact.NrBedrijf = dbo.Bedrijven.NrBedrijf
WHERE     (dbo.Bedrijven.Tewerkstelling >= '20') AND (dbo.Bedrijven.Provincie = 'ant')

daarvoor krijg ik dus alle bedrijven met al hun contactpersonen (dus heel veel dubbels in de bedrijvenvelden). Ik wil slechts 1 contactpersoon.
 
Als je in de QBE op het sigma teken klikt, dan maak je van je query een group-by query.
In iedere kolom staat nu group-by. Ga naar de naam en klik de tekst group-by aan. Het is een pulldown menu. Selecteer nu Eerste of First. Afhankelijk welke office versie je hebt.

HTH:D

BTW QBE is Query By Example. Daarin maak je in Access de meeste queries.
 
Laatst bewerkt:
mijn probleem is nog niet opgelost, ik heb raad gevraagd bij een sql programmeur maar nog geen antwoord gekregen. Als ik een antwoord krijg, zal ik het hier posten!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan