Avatar billede tobbi Nybegynder
01. maj 2003 - 12:31 Der 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 ??
Avatar billede 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
Avatar billede tobbi Nybegynder
01. maj 2003 - 12:46 #2
hhmm, det giver stadig bare NULL
Avatar billede pierrehusted Nybegynder
01. maj 2003 - 12:50 #3
Hvad med sådan her ??

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
Avatar billede tobbi Nybegynder
01. maj 2003 - 12:53 #4
det virker heller ikke....

tror bare jeg koder mig ud af det med nogle if-sætninger
Avatar billede 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?
Avatar billede 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 lige testet på mine egne data og det funker.
Avatar billede tobbi Nybegynder
01. maj 2003 - 13:08 #7
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....
Avatar billede 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
Avatar billede 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.
Avatar billede tobbi Nybegynder
01. maj 2003 - 13:18 #10
det er sgu smukt.... ;-)

det virkede.
Avatar billede Slettet bruger
01. maj 2003 - 13:21 #11
Velbekom....man skal jo ikke give for hurtigt op :-)
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

IT-JOB

European Stonecraft

Intern Navision/BC Supporter

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Teknisk systemansvarlig / ingeniør inden for taktisk datalink

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Netværkstekniker til Forsvarets Cyberdivision i Hvidovre – Er det dig?

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Ingeniør til Satellitkommunikation