|
| Hjælp til sql forespørgsel Fra : Torben Jensen |
Dato : 02-10-03 11:10 |
|
Hej NG!
Jeg har en tabel med to kolonner - "brugernavn" og "kontonr".
Brugernavnet er kontonr+initialer, eksempelvis 12345tj. For at sikre at der
overensstemmelse mellem det kontonr der indgår i brugernavn og det reelle
konto ønsker ejg at lave en kontrol i databasen hvor jeg udvælger alt fra
kontonr og kontrollerer om der er forekomster hvor dette ikke indgår i
brugernavn.
Jeg ved ikke om det står helt klart hvad jeg ønsker, så sagt på en anden
måde ønsker jeg for hver post i tabellen at kontrollere om det valgte
kontonr indgår i brugernavnet for den samme post - dvs en sammenligning af
to kolonner.
Kan nogen hjælpe mig med det?
På forhånd tak
M.v.h.
Torben Jensen
| |
Troels Arvin (02-10-2003)
| Kommentar Fra : Troels Arvin |
Dato : 02-10-03 11:16 |
|
On Thu, 02 Oct 2003 12:10:20 +0200, Torben Jensen wrote:
> Jeg har en tabel med to kolonner - "brugernavn" og "kontonr".
>
> Brugernavnet er kontonr+initialer, eksempelvis 12345tj.
Du bryder første normalform og introducerer samtidig redundans - endda
tilsyneladende uden god grund. Hvorfor har du ikke bare følgende
kolonner: initial, kontonr. Så kan du samle dem med konkatenering efter
behov, fx. i et view.
> måde ønsker jeg for hver post i tabellen at kontrollere om det valgte
> kontonr indgår i brugernavnet for den samme post - dvs en sammenligning af
> to kolonner.
Hvis du vil fastholde dit design, må du ud i noget gris med
triggers (evt. i form af CHECK-contraints), og du bliver da nødt til at
fortælle hvilket DBMS-system, du benytter.
--
Greetings from Troels Arvin, Copenhagen, Denmark
| |
Kristian Damm Jensen (02-10-2003)
| Kommentar Fra : Kristian Damm Jensen |
Dato : 02-10-03 12:29 |
|
"Torben Jensen" <no@spam.dk> skrev i en meddelelse
news:3f7bf901$0$54764$edfadb0f@dread11.news.tele.dk...
> Hej NG!
>
> Jeg har en tabel med to kolonner - "brugernavn" og "kontonr".
>
> Brugernavnet er kontonr+initialer, eksempelvis 12345tj. For at sikre at
der
> overensstemmelse mellem det kontonr der indgår i brugernavn og det reelle
> konto ønsker ejg at lave en kontrol i databasen hvor jeg udvælger alt fra
> kontonr og kontrollerer om der er forekomster hvor dette ikke indgår i
> brugernavn.
>
> Jeg ved ikke om det står helt klart hvad jeg ønsker, så sagt på en anden
> måde ønsker jeg for hver post i tabellen at kontrollere om det valgte
> kontonr indgår i brugernavnet for den samme post - dvs en sammenligning af
> to kolonner.
Følgende vil give dig en liste over poster, der ikke overholder kravet.
select *
from tabel
where brugernavn like kontonr+"%"
idet jeg går ud fra, at dit dbms benytter + til strengsammensætning.
I øvrigt er jeg enig med Troels: Det er noget gris.
> Kan nogen hjælpe mig med det?
Forhåbentlig
--
Kristian Damm Jensen
damm (at) ofir (dot) dk
| |
Troels Arvin (02-10-2003)
| Kommentar Fra : Troels Arvin |
Dato : 02-10-03 12:40 |
|
On Thu, 02 Oct 2003 13:29:26 +0200, Kristian Damm Jensen wrote:
> select *
> from tabel
> where brugernavn like kontonr+"%"
>
> idet jeg går ud fra, at dit dbms benytter + til strengsammensætning.
- Og at DBMSet også bryder standarden ved at benytte " som streng-literal
afgrænser
--
Greetings from Troels Arvin, Copenhagen, Denmark
| |
|
|