Jayanta Modak Ответов: 1

Хранимая процедура не работает должным образом, Пожалуйста, помогите мне.....


Хранимая процедура не работает должным образом, Пожалуйста, помогите мне.....

эта хранимая процедура не работает должным образом, она запускается, но не вычисляется автоматически...

например


ISNULL( (tp.qty-ts.qty),0) as Closing_Stock


эта строка не будет работать(количество покупки - продажи), если я изменю ее для теста на--

ISNULL( (tp.qty-1),0) as Closing_Stock


тогда это сработает а также та же проблема эта линия

ISNULL( (i.brate*(tp.qty-ts.qty)),0) As Amount


пожалуйста, помогите мне

Что я уже пробовал:

select  c.catnm, i.itemnm, i.opnstk, u.untnm, (i.ITMcgst*2) as StkGSTRate, ISNULL( tp.qty,0) as purchaseQty, ISNULL( TS.qty,0) AS SaleQty ,
ISNULL( tpr.qty,0) as Purchase_Return_QTY,ISNULL( tsr.qty,0) as Sale_Return_QTY , ISNULL( (tp.qty-ts.qty),0) as Closing_Stock
,ISNULL( i.brate,0) as brat,ISNULL( (i.brate*(tp.qty-ts.qty)),0) As Amount,lsd.lastSaleDate ,LPD.lastPurchaseDate

  from tbl_item i
    JOIN tblcat  c    ON c.catid=i.ITMcatid
    JOIN tblUnit u    ON u.untid=i.ITMunitid
    
    LEFT JOIN (select ItemIDpur  as itemid, sum(PDQty) As qty FROM TBL_pur_invdet  where p_type='P' group by ItemIDpur)  tp  ON i.itemid=tp.itemid
    LEFT JOIN (select ItemIDSALE as itemid, sum(SDQty) As qty FROM TBL_sale_invdet where S_type='S' group by ItemIDsale) ts  ON i.itemid=tS.itemid
    
    LEFT JOIN (select ItemIDpur  as itemid, sum(PDQty) As qty FROM TBL_pur_invdet  where p_type='PR' group by ItemIDpur)  tpr  ON i.itemid=tpr.itemid
    LEFT JOIN (select ItemIDSALE as itemid, sum(SDQty) As qty FROM TBL_sale_invdet where S_type='SR' group by ItemIDsale) tsr  ON i.itemid=tSr.itemid
           
    LEFT JOIN (select ItemIDSALE as itemid, max(SaleInvdt) As lastSaleDate     FROM TBL_sale_invdet where S_type='S' group by ItemIDsale) LSD  ON i.itemid=LSD.itemid
    LEFT JOIN (select ItemIDpur  as itemid, max(purdate)   As lastPurchaseDate FROM TBL_pur_invdet  where P_type='P' group by ItemIDpur)  LPD  ON i.itemid=LPD.itemid

1 Ответов

Рейтинг:
7

Richard Deeming

ISNULL(tp.qty, 0) - ISNULL(ts.qty, 0) as Closing_Stock
i.brate * (ISNULL(tp.qty, 0) - ISNULL(ts.qty, 0)) As Amount

Когда вы вычитаете одно значение из другого, если любое из них равно NULL, результат будет следующим NULL.