24. august 2008 - 12:40Der er
14 kommentarer og 1 løsning
konvertere null til 0
hej
jeg har lavet flg. sql-sætning: select firmid,alias,(SELECT sum(point) FROM competition_points WHERE competition = 1 AND firmid = competition_firms.firmid) as point from competition_firms where competition = 1
den virker efter hensigten - bortset fra at nogle af felterne bliver "null" istedet for "0" da der ikke er noget i competition_points
er der nogen der kan rette sætningen til, så den returnerer 0 istedet for null
jamen det er jo en sammentælling ;) jeg summer jo op fra tabellen competition_points ud fra nogle kriterier... hvis der ikke er noget i tabellen som matcher mine kriterier, får jeg null istedet for 0 som sum...
Er det ikke nemmest bare i udskriften fra SQL-en, i programmeringssproget bagved, at skrive "0" hvis den er "null" - eller måske mere informativt: "ingen oplysninger".
en anden måde at skrive din sql på kunne være dette:
select competition_firms.firmid, alias, sum(isnull(point,0)) as point from competition_firms left outer join competition_points on competition_firms.firmid = competition_points.firmid where competition = 1 group by competition_firms.firmid, alias
kan du ikke bare overstyre felterne med isnull(felt, 0)
Jeg kunne ikke helt forstå din beskrivelse... men måske kan du gøre noget a' la'
select firmid, alias, ( SELECT sum(point) FROM competition_points WHERE ISNULL(competition,0) = 1 AND firmid = competition_firms.firmid ) as point from competition_firms where ISNULL(competition, 0) = 1
select firmid,alias, coalesce(SELECT sum(point) FROM competition_points WHERE (competition = 1) AND (firmid = competition_firms.firmid),0) as point from competition_firms where (competition = 1)
coalesce er i alt fald kommandoen der returnerer den første værdi forskellig fra NULL (nu er NULL slet ikke en værdi, det er en slags ingenting ..). Den må du kunne bruge et eller andet sted.
lifeweb>> Du har selv taget points, så du skal oprette et nyt spørgsmål med 30 points, hvis sjang skal have dem. =)
Synes godt om
Ny brugerNybegynder
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.