SQL难题求解!SQL难题求解!

图片说明

SELECT a.PNO ,
a.Uname ,
isnull(a.pronum - b.SPCnumber,0) AS sjxsnum
FROM ( SELECT TOP 100 PERCENT
cong.PNO ,
zhu.Uname ,
SUM(cong.BenCiNum) pronum
FROM dbo.TBFaHuo zhu
RIGHT JOIN ( SELECT PNO ,
BenCiNum ,
FhId
FROM dbo.TBFaHuoDetail c
) cong ON zhu.FhId = cong.fhId
WHERE cong.PNO = 'kl008'
GROUP BY zhu.Uname ,
cong.PNO
ORDER BY ProNum DESC
) a
LEFT JOIN
( SELECT TOP 100 PERCENT
ddmx.PNO ,
dd.UName ,
SUM(thmx.SPCnumber) SPCnumber
FROM dbo.TBSalesReturnPro thmx
INNER JOIN ( SELECT id ,
pno ,
oid
FROM dbo.TBOrderPro mx
) ddmx ON ddmx.ID = thmx.OPID
INNER JOIN ( SELECT OID ,
UName
FROM TBOrder
) dd ON dd.OID = ddmx.oid
WHERE ddmx.PNO = 'kl008'
GROUP BY ddmx.PNO ,
dd.UName
) b ON b.UName = a.Uname

附上错误的sql语句,希望指正!

 select a.pno,a.uname,(a.pronum-b.spcnumber) as 差 from a left jion b on a.pno=b.pno and a.uname=b.uname
    SELECT a.pno,
           a.uname,
           a.pronum - ISNULL(b.spcnumber,0) AS sjxsnum --ISNULL()用错了对象
      FROM (...) a
 LEFT JOIN (...) b
        ON b.uname = a.uname
       AND b.pno = a.pno -- 漏了一个条件