Avatar billede macriis Nybegynder
22. december 2004 - 11:53 Der er 11 kommentarer og
1 løsning

SQL SELECT streng og id er ens

Hej med jer og glædelig jul

Jeg skal lave en SQL-sætning hvor jeg selecter alle kontakter der har samme kundeId.

Jeg har en tabel [kontakt] der indholder følgende kolonner, som jeg forestiller mig skal bruges til:

iKundeid, iKontaktid, sNyhedsbrev

Jeg ønsker at selecte alle kontakter der har samme kontaktid og hvor sNyhedsbrev indeholder strengen true.

Hvordan gøres det?
Avatar billede mortency Nybegynder
22. december 2004 - 11:58 #1
Hva heter tabellene dine, feltene som binder dette sammen og hva heter feltene du skal hente ut?
Avatar billede mortency Nybegynder
22. december 2004 - 12:00 #2
select kolonner,kolonner from dintabel1,dintabell2 where dintabell1.kolonneid=dintabell2.kolonneid and snyhedsbrev=1
Avatar billede macriis Nybegynder
22. december 2004 - 12:05 #3
Der er kun tale om 1 tabel. Den hedder kontakt.

Vi kan sige at jeg skal bruge feltnavnet sKontaktnavn.

Dvs. at sKontaktnavn skal selectes hvis der i tabellen kontakt eksisterer 2 kontakter med samme kundeId og hvor sNyhedsbrev = 'true'.
Avatar billede mortency Nybegynder
22. december 2004 - 12:14 #4
SELECT * FROM kontakt tb1
WHERE (SELECT COUNT(*) FROM kontakt tb2 WHERE tb2.kundeid=tb1.kundeid) > 1
Avatar billede mortency Nybegynder
22. december 2004 - 12:15 #5
SELECT * FROM kontakt tb1
WHERE (SELECT COUNT(*) FROM kontakt tb2 WHERE tb2.kundeid=tb1.kundeid) > 1 AND sNyhedsbrev = 'true'
Avatar billede mortency Nybegynder
22. december 2004 - 12:15 #6
Mener du at to kunder kan ha samme kundeid en tabell? Er ikke kundeid autonummer?
Avatar billede macriis Nybegynder
22. december 2004 - 12:19 #7
Bemærk at det ikke er kundetabellen men kontakttabellen. Primærnøgle er kundeid.

Der kan altså godt være 2 kontakter med samme kundeid.
Avatar billede macriis Nybegynder
22. december 2004 - 12:24 #8
Er tilbage om 30 min. Det ser umiddelbart ud til at virke.
Avatar billede macriis Nybegynder
22. december 2004 - 13:04 #9
Hvad gør jeg så hvis jeg kun ønsker 1 kontakt med hvert kundeid?

Dvs. recordsettet skal være "distinct" på kundid?
Avatar billede mortency Nybegynder
22. december 2004 - 13:21 #10
Forklar litt bedre.
Avatar billede mortency Nybegynder
22. december 2004 - 13:24 #11
Mener du sånn?

SELECT * FROM kontakt tb1
WHERE (SELECT COUNT(*) FROM kontakt tb2 WHERE tb2.kundeid=tb1.kundeid) > 1 AND sNyhedsbrev = 'true' AND kundeid=5
Avatar billede macriis Nybegynder
22. december 2004 - 13:30 #12
Ok. Prøver at forklare bedre.

I først SQL-sætning findes alle kontakter hvor kundeid er ens og sNyhedsbrev = true.

Men jeg kunne godt tænke mig kun at få alle kontakter hvor kundeid er ens og sNyhedsbrev = true, men kun 1 kontakt med samme kundeid skal hentes. Og det er ligegyldigt hvilken af de kontakter, der har ens kundeid, som bliver selectet.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester