Avatar billede davidfossil Nybegynder
11. oktober 2003 - 22:53 Der er 2 kommentarer og
1 løsning

sætte et felt til 0 hvis et andet felt er under 3 i en select

jeg er selv kommet frem til dette rod da jeg prøvede at finde på en løsning på mit problem:

SELECT ROUND(AVG(grades.grade)*(COUNT(grades.grade)-1)*(COUNT(grades.grade)-2)/(COUNT(grades.grade)-1)/(COUNT(grades.grade)-2),0) AS grade FROM ... (andentbl inner join grades group by andentbl.id)

det virker, men ser åndsvagt ud.
det jeg vil have et at feltet "grade" returneres som 0, hvis COUNT(grade) er mindre end 3 (1 eller 2)

håber nogen kan forstå mig :D
Avatar billede arne_v Ekspert
11. oktober 2003 - 23:17 #1
Jeg kan ikke helt gennemskue din SQL men ifølge MySQL docs kan man:

SELECT IF(felt2 < 3, 0, felt1) ...

Prøv og anvend det.
Avatar billede 5floor Nybegynder
12. oktober 2003 - 15:01 #2
Ved ikke om jeg har misforstået spørgsmålet, men jeg ville lave beregningen inden den rammer databasen - altså fx lave en if/else i Java e.lign (ved ikke hvordan du tilgår databasen???)
Så undgår du i hvert fald din noget voldsomme SELECT ROUND.....

God søndag
Avatar billede davidfossil Nybegynder
12. oktober 2003 - 15:41 #3
det var også et ret sært spørgsmål, men arnes svar var hvad jeg søgte :)
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