Jag önskar ställa en fråga (T-SQL) till en SQL-server. Hej! Tack för snabbt och utförligt svar med kod. Hej. SELECT id_medlem, kortnrDubletter
Jag har ett problem i min databas. Det finns troligtvis medlemmar som har samma kortnummer.
Tabeller: Medlemmar och Kort
Fält: ID_Medlem, ID_Kort och Kortnr
Fråga: Vilka medlemmar har samma kortnummer?
En medlem kan ha flera kort med samma kortnummer. Men olika medlemmar får inte ha samma kortnummer.
Så jag undrar nu hur en sådan fråga ser ut till databasen?
Hälsning
Johan.seSv: Dubletter
Denna fråga tar fram ev. icke unika kortnummer:
select Kortnr
from kort
group by kortnr
having count(*) > 1
Sen är det bara att kolla vilka medlemmar som har dessa icke unika kortnr. Till exempel:
select id_medlem
from kort
where kortnr in (
select Kortnr
from kort
group by kortnr
having count(*) > 1
)Sv: Dubletter
Dock så uttryckte jag mig inte så klart kanske. En medlem kan ha flera kort med samma kort nummer.
Exempel från kort-tabellen
ID_Medlem, Kortnummer
1, 333444
1, 333444
2, 444111
3, 222111
4, 333444
Som du ser ovan så har medlem 1 två stycken kort. Dessa kort har samma kortnummer (det är tillåtet) men medlem 4 har också samma kortnummer som medlem 1. Detta är inte tillåtet. En medlem får ha flera kort med samma kortnummer men olika medlemmar får inte ha kort med samma kortnummer.Sv: Dubletter
Vet inte om man kan göra så här i SQL-Server, men i princip:
select id_medlem, kortnr
from kort x
where exists (select null from kort
where kortnr = x.kortnr
and id_medlem != x.id_medlem)
/UffeSv: Dubletter
FROM kort
WHERE EXISTS (
SELECT Null
FROM kort Sub
WHERE Sub.id_medlem <> kort.id_medlem AND Sub.kortnr = kort.kortnr
)