sql - blank value istead in a mutiply subquery -
i have sql in sybase cumulative value of of quetity mulitiplied price gives blank values when want show real values.
here code :
select pmu.idval, pmu.idint, pmu.idnumecrppal, pmu.idsensope, pmu.dtecr, pmu.qteecr, pmu.prixacquis, (select sum(p1.qteecr) casimir.dbo.pmu p1 p1.idnumecrppal < pmu.idnumecrppal , p1.idint = pmu.idint) qcp, (select sum(p2.qteecr * p2.prixacquis) casimir.dbo.pmu p2 p2.idnumecrppal < pmu.idnumecrppal , p2.idint = pmu.idint) prup casimir.dbo.pmu pmu idint = 1733 order idnumecrppal
here result:
idval * idint * idnumecrppal * qteecr * prixacquis * qcp prup 650 1733 1074292 69 0.00 {null} {null} 650 1733 1165538 6 0.00 69 0.00 650 1733 1618644 7 0.00 75 0.00 650 1733 1934483 10 0.00 82 0.00 650 1733 1934484 1 0.00 92 0.00 650 1733 2140552 93 0.00 93 0.00 650 1733 2506329 200 0.00 186 0.00 650 1733 2515839 100 0.00 386 0.00 650 1733 2520087 110 0.00 486 0.00 650 1733 2572565 400 0.00 596 0.00 650 1733 2581126 1 0.00 996 0.00 650 1733 2858466 56 0.00 997 0.00 650 1733 2907483 6 0.00 1053 0.00 650 1733 3227255 7 0.00 1059 0.00 650 1733 3440560 173 0.00 1066 0.00 650 1733 3440727 67 0.00 1239 0.00 650 1733 3467592 100 0.00 1306 0.00 650 1733 3482135 100 188.00 1406 0.00 650 1733 3483475 30 185.35 1506 650 1733 3491124 350 0.00 1536 650 1733 3717502 70 0.00 1886 650 1733 3717503 4 0.00 1956 650 1733 4046744 20 65.44 1960 650 1733 4047669 200 0.00 1980 650 1733 4059311 150 67.12 2180 650 1733 4101861 200 0.00 2330 650 1733 4118371 36 0.00 2530 650 1733 4118372 3 0.00 2566
the column prup gives me right value give blank values after.
any idea
you need use isnull
function
select pmu.idval, pmu.idint, pmu.idnumecrppal, pmu.idsensope, pmu.dtecr, pmu.qteecr, pmu.prixacquis, isnull((select sum(p1.qteecr) casimir.dbo.pmu p1 p1.idnumecrppal < pmu.idnumecrppal , p1.idint = pmu.idint),0) qcp, isnull((select sum(isnull(p2.qteecr,1) * isnull(p2.prixacquis,1)) casimir.dbo.pmu p2 p2.idnumecrppal < pmu.idnumecrppal , p2.idint = pmu.idint),0) prup casimir.dbo.pmu pmu idint = 1733 order idnumecrppal
you can use coalesce
function instead.
Comments
Post a Comment