Avatar billede nin_nin Nybegynder
14. november 2006 - 09:13 Der er 9 kommentarer og
1 løsning

køns opdeling efter cpr. nr.

Hvem kan den hurtige kode til en opdeling af mine elever efter køn. Bruger export funktionen i Enterprice manager.
Jeg har en tabel med alle oplysninger: navn, cpr,skolenr.,osv.
men vil gerne have to nye rækker, dreng og pige i tabelen.

øhh hvordan var det nu?
Avatar billede teepee Nybegynder
14. november 2006 - 11:30 #1
Tilføj en kolonne og lav en modulus 2 beregning:

update tabel set koen = case (cpr % 2) when 1 then 'D' else 'P' end;

Jeg har altså ikke checket syntaxen og det kan også være at du skal caste cpr...
Avatar billede nin_nin Nybegynder
15. november 2006 - 09:00 #2
Et eksempel?
Avatar billede teepee Nybegynder
15. november 2006 - 09:17 #3
Et eksempel på hvad? Tilføj en kolonne kaldet "koen" til tabellen og opdater tabellen med ovenstående sql.
Avatar billede nin_nin Nybegynder
15. november 2006 - 09:58 #4
Tusind tak, kan begynde at se lyset.
når jeg så vil opdatere tabelen får jeg følgende fejl:
syntax error converting the varchar value '120364-9999' to a column of data type int.

9999 er fiktive.
Avatar billede teepee Nybegynder
15. november 2006 - 13:40 #5
Den kan ikke lide bindestregen. Vi må lige indsætte en replace:

update tabel set koen = case (replace(cpr,'-','') % 2) when 1 then 'D' else 'P' end;

Du kan jo evt. skrive Dreng i stedet for D osv...
Avatar billede nin_nin Nybegynder
16. november 2006 - 12:08 #6
Men så kommer:
The conversion of the varchar value '2201370453' overflowed an int column. Maximum integer value exceeded.
The statement has been terminated.
Avatar billede teepee Nybegynder
16. november 2006 - 15:25 #7
Du skal jo sådan set kun bruge det sidste tegn, så vi prøver noget andet:

update tabel set koen = case (right(cpr,1,1) % 2) when 1 then 'D' else 'P' end;
Avatar billede nin_nin Nybegynder
17. november 2006 - 08:35 #8
Hej igen

Jeg ved godt at det er et eller andet med 8000 byte grænsen for udregninger, der giver ovennævnte fejl. når jeg gør det med 10 er der ikke noget problem.

Dit nye indlæg giver følgende:

The right function requires 2 arguments.
Avatar billede nin_nin Nybegynder
17. november 2006 - 08:44 #9
Men nu virker det. Efter at have fjernet ,1
Så den ser sådan her ud:
update tabel set koen = case (right(cprnr,1) % 2) when 1 then 'D' else 'P' end;
Avatar billede nin_nin Nybegynder
17. november 2006 - 08:45 #10
Tusind tusind tak for hjælpen...
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
Computerworld tilbyder specialiserede kurser i database-management

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