???????? Skrevet 6. januar 2010 Del Skrevet 6. januar 2010 Hei! Jeg har et problem med en SQL. Problemet er å velge ut unike e-postadresser på kunder. I utgangspunktet kunne dette vært løst med select distinc, MEN, porblemet er at e-postadressen kan forekomme flere ganger på forskjellige kundenummer. Så poblem 1: Tabellen med kontaktinfo ser slik ut. +---------+-------------- | kundenr | epost +---------+-------------- | 1 | [email protected] | 2 | [email protected] | 3 | [email protected] | 4 | [email protected] +---------+-------------- Select distinct epost from kontaktinfo Gir meg da 3 unike e-postadresser Men, jeg er avhengig å ha med kundenummer, og da returnerer ikke spørringen 3 forskjellige e-postadresser, men alle hvor [email protected] kommer to ganger siden kundenr er forskjellig. Så denne spørringen fungerer ikke: Select distinct epost, kundenr from kontaktinfo Kan noen hjelpe meg? For å gjøre det hele verre finnet det også et problem 2. Spørringen over skal joines med en annen tabell, som avgjør om kunden er gyldig eller ikke. kundeStatus tabellen ser slik ut: +---------+-------------- | kundenr | statur +---------+-------------- | 1 | gyldig | 2 | gyldig | 3 | gyldig | 4 | ugyldig +---------+-------------- Så det jeg trenger er unike e-postadresser fra kontaktinfo tabellen, joinet med kundestatus som sjekker at kunden er gyldig. Takknemmelig om noen kan hjelpe meg en en av disse problemstillingene! Lenke til kommentar
kaffenils Skrevet 6. januar 2010 Del Skrevet 6. januar 2010 (endret) Du vil ha distinct email adresse, men så vil du plutselig ha med kundenummer også? Hvilket kundenummer er det du vil ha hvis to kunder med samme emailadresse begge er gyldige? Jeg tror du må omformulere spørsmålet ditt. Jeg gjetter at du vil ha alle distincte emailadresser til gyldige kunder, eller? Endret 6. januar 2010 av kaffenils Lenke til kommentar
MikkelRev Skrevet 6. januar 2010 Del Skrevet 6. januar 2010 Jeg ser for meg at det er feil at to forskjellige kunder skal ha samme email-adresse. Skal det være meningen at jeg kan registrere meg med din epost? Mer riktig tror jeg det hadde vært å definere feltet som unique. Spørringen kan se slik ut: SELECT kundenr, epost, statur FROM kontaktinfo WHERE kontaktinfo.kundenr=kundeStatus.kundenr Da vil du få dette i resultat: 1 - [email protected] - gyldig 2 - [email protected] - gyldig 3 - [email protected] - gyldig 4 - [email protected] - ugyldig Eller er målet å kun få ut de som har gyldig status? Isåfall er det vel bare å legge til WHERE statur LIKE 'gyldig'. Lenke til kommentar
???????? Skrevet 6. januar 2010 Forfatter Del Skrevet 6. januar 2010 Det som er en ulempe er at en e-post kan også finnes på flere kundenummer, som er både gyldige og ugyldige. Så dersom en adresse har flere gyldige forekomster så er det samme hvilket nummer som velges, bare de ugyldige eksluderes. Lenke til kommentar
kaffenils Skrevet 6. januar 2010 Del Skrevet 6. januar 2010 For å gjøre det enkelt så velger vi min(kundenr). select ki.epost,min(ki.kundenr) from kontaktinfo ki inner kontaktstatus ks on ks.kundenr=ki.kundenr where ks.status='gyldig' group by ki.epost Lenke til kommentar
quantum Skrevet 7. januar 2010 Del Skrevet 7. januar 2010 Høres ut som kunderegistret trenger en vask ... Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå