1 postadres etiket met SQL uit ledenbestand per gezin

Status
Niet open voor verdere reacties.

FerryW

Gebruiker
Lid geworden
12 aug 2013
Berichten
32
Hoe kan ik uit één tabel met leden en NAW gegevens een Select maken die alleen regels weergeeft met unieke adressen per gezin? Dus 1 etiket per postadres.
Tabel LID bevat o.a.:
Lidnummer (is uniek ID), samennaam, roepnaam, postcode, straat, plaats.
Maar ik wil één regel per gezin op zelfde adres. Onderstaande werkt niet?

select lidnummer,zoekcode, samennaam, straat, huisnummer, postcode, plaats from lid t1
inner join
(select distinct postcode+huisnummer as CKey from lid) t2
on t1.postcode+t1.huisnummer=t2.CKey
Where (Uitschrijfdatum is null or uitschrijfdatum>Now(*))

LID
lidnummer roepnaam samennaam postcode Huisnummer straat
1 Jan De boer 1234 AB 15 Kerkstr
2 Kim De Boer 1234 AB 15 Kerkstr
3 Alex De Boer 1234 AB 15 kerkstr

Gewenst Resultaat
Familie De Boer, Kerkstr, 15, 1234 AB


Vast dank voor meedenken in goede richting
Ferry
 
select DISTINCT zoekcode, samennaam, straat, huisnummer, postcode, plaats
from lid
where (Uitschrijfdatum is null or uitschrijfdatum>Date(*))

Je vertelt er niet bij wat voor SQL (er zijn tig smaken) je gebruikt dus wellicht moet je eea aanpassen:

- geen idee of DISTINCT werkt, wellicht moet je DISTINCTROW gebruiken
- geen idee of Date(*) werkt (ps gebruik nooit Now maar Date als je wilt vergelijken met vandaag)

Tardis
 
Dank voor de snelle reacties.

Ja stom van mij. Ik ga mijn best doen het versienummer boven water te halen.
Maar volgens mij gebruik ik MySQL 2005. Dat ga ik nog evenverivieren. Ik kan nl alleen bij de tabellen.
Ik weet al wel dat DISTINCTROW niet werkt (niet bekend is) in mijn versie.

Ik probeerde de DISTINCT nl door het combineren Postcode+huisnummer en daarmee een unieke waarde te genereren per gezin. Dat gaat op zich goed, maar dan heb ik alleen een lijst met deze waardes. Zodra ik er een naam of andere kolom bij zet krijg ik wer alle dubbelen.
De GROUP BY lukte mij ook niet. Om die reden had ik nl de combinatie Postcode+Huisnummer de naam CKEY gegeven, maar dat pakt de GROUP By vervolgens niet? Dus daarom ben ik met t1 en t2 gaan werken, in de hoop dat ik een tabel in 2 virtueel verschillende tabellen tot een goede veiw kon opmaken.

Ferry
 
Ik ben eruit.
Helaas kan ik nog geen antwoord geven op het juiste versienummer.
Maar mogelijk helpt mijn antwoord (ik ben geholpen door een deskundiger SQL kenner) anderen die ook met dit probleem zitten.

Door eerste een unieke naam+locatie combinatie te maken, en dan die lidnummer+locatienaam te maken en daarnaast opnieuw het adres-locatie in een kolom te zetten, heb ik mijn gewenste overzicht.

select
distinct
(select max(achternaam) from lid where straat+ ' '+huisnr=adres
and (uitschrijfdatum is null or uitschrijfdatum>today(*))) as naam,

(select max(lidnummer) from lid where straat+ ' '+huisnr=adres
and (uitschrijfdatum is null or uitschrijfdatum>today(*))
and achternaam=naam) as Lidnr,

straat+' '+huisnr as adres

from
lid
where
(uitschrijfdatum is null or uitschrijfdatum>today(*))
order by
naam

Ik ga kijken of ik deze hulpvraag kan sluiten.

Ferry
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan