01. maj 2003 - 12:31Der er
10 kommentarer og 1 løsning
sum - select returnere null
jeg henter summen fra 2 tabeller og lægger dem sammen... problemet er at hvis den ene giver NULL bliver det hele NULL...
eks. select ( (select sum(dcamount) from tblpackinglist where inbatch_id=@id) + (select sum(dcamount) from tblpackinglist_used where inbatch_id=@id) ) as total
kan man gøre noget så den returner 0 istedet for null ??
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
Slettet bruger
01. maj 2003 - 12:36#1
Ja da select ( (select sum(isnull(dcamount,0)) from tblpackinglist where inbatch_id=@id) + (select sum(isnull(dcamount,0)) from tblpackinglist_used where inbatch_id=@id) ) as total
select ( ISNULL(select sum(isnull(dcamount,0)) from tblpackinglist where inbatch_id=@id), 0) + ISNULL(select sum(isnull(dcamount,0)) from tblpackinglist_used where inbatch_id=@id), 0) ) as total
tror bare jeg koder mig ud af det med nogle if-sætninger
Synes godt om
Slettet bruger
01. maj 2003 - 12:56#5
Det forstår jeg ikke da sum(isnull(dcamount,0)) jo lige netop siger at hvis dcamount er null så skal den være 0 og summen af en masse 0'er er jo 0. Er du sikker på at du har skrevet det rigtig i din select?
Synes godt om
Slettet bruger
01. maj 2003 - 13:07#6
Prøv med
select ( select isnull(select sum(isnull(dcamount,0)) from tblpackinglist where inbatch_id=@id), 0) + select isnull(select sum(isnull(dcamount,0)) from tblpackinglist_used where inbatch_id=@id), 0) ) as total
har skrevet det som ovenover, men den returnere stadig NULL
Jeg tror det er fordi den ene select slet ikke finder nogle rækker med dette batch_id, og så vil den jo returnere NULL....
Synes godt om
Slettet bruger
01. maj 2003 - 13:12#8
Så får du lige min her som er ok, den giver 0 da jeg ikke har nogle sel=876 i nogle af mine tabeller, prøv at erstatte mine tabelnavne med dine
select (select isnull((select sum(isnull(sel,0)) from selskab where sel = 876),0)) + (select isnull((select sum(isnull(sel,0)) from rykpar where sel = 876),0)) as total
Synes godt om
Slettet bruger
01. maj 2003 - 13:15#9
Det ser ud som om at jeg ikke har sat paranteserne rigtig i mit forrige svar (13:07:16) så jeg synes du skal prøve det sidste svar jeg kom med.
Velbekom....man skal jo ikke give for hurtigt op :-)
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.