Avatar billede grafikeren Nybegynder
08. september 2004 - 15:55 Der er 13 kommentarer og
1 løsning

SQL sætning: select sum

Hej.

SELECT SUM (expression )
FROM tables
WHERE predicates;

Når jeg bruger select sum på min mediumINT felt i min MySQL database, så afrunder den. Den glemmer alle decimaler.

Hvordan undergår jeg dette?
Avatar billede uffe_kld Nybegynder
08. september 2004 - 15:57 #1
MediumINT er det ikke en integer felt ? Integerfelt plejer kun at indeholde heltal ?
Avatar billede grafikeren Nybegynder
08. september 2004 - 16:02 #2
Den indeholder altså kommatal lige nu med et decimal. Det virker fint - ud over select sum. Skal jeg køre en helt anden tabeltype - og hvilken?? Den skal ikke ændre på mine data, så er jeg død. :o)
Avatar billede grafikeren Nybegynder
08. september 2004 - 16:03 #3
Sorry, det passer heller ikke at det er mediumINT, men den er sat til tinyText. Skal det rettes?
Avatar billede grafikeren Nybegynder
08. september 2004 - 16:13 #4
Jeg har prøvet at ændre feltet til 'decimal', men nu har den fjernet alle mine decimaler og jeg kan ikke indsætte fx "6,3" men skal skrive "6.3"... Det er jo slet ikke særlig fedt!
Avatar billede grafikeren Nybegynder
08. september 2004 - 16:20 #5
Jeg har nu lagt den gamle tabel ind igen. Er der ikke en type med komma?
Avatar billede arne_v Ekspert
08. september 2004 - 16:20 #6
TINYTEXT er netop det - tekst ikke tal
Avatar billede grafikeren Nybegynder
08. september 2004 - 16:23 #7
Ja, det ved jeg. Men jeg prøver jo at finde en ny type med kommatal. Hvilken skal jeg vælge?? Decimal er der punktummer istedet for kommaer og så er det jo svært at gemme i...
Avatar billede arne_v Ekspert
08. september 2004 - 16:24 #8
Du kan prøve:

SELECT SUM(CAST(feltnavn AS DECIMAL)) FROM tabelnavn

Men mit forslag er klart:
  - brug decimal
  - lad din applikation (PHP/ASP/whatever) erstatte ,. så det passer inden
    der gemmes i db
Avatar billede arne_v Ekspert
08. september 2004 - 16:25 #9
komma og punktum har ikke noget med felt typer at gøre - det er sprog - og computere
snakker helst engelsk
Avatar billede grafikeren Nybegynder
08. september 2004 - 16:31 #10
:o) ASP gemmer vist bare som kommatal... Derfor er der så mange steder, at dette skal rettes. øvøv.
Avatar billede grafikeren Nybegynder
08. september 2004 - 16:33 #11
Kan du kaste en SQL kommando ud af ærmet som ændrer alle mine kommaer til punktum. Så skulle konverteringen til decimal feltet være MEGET mindre smertefri.

Kan man ikke bruge SQL til denne formatering?
Avatar billede grafikeren Nybegynder
08. september 2004 - 16:40 #12
Ej, det er vist lettere med ASP. Men tak for hjælpen.

Læg et svar arne.
Avatar billede arne_v Ekspert
08. september 2004 - 16:59 #13
UPDATE tabelnavn SET feltnavn=REPLACE(feltnavn,',','.')
Avatar billede arne_v Ekspert
08. september 2004 - 16:59 #14
og et svar
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