22,300
社区成员




DECLARE @condition AS VARCHAR(30)
SET @condition='TEST-3'
SELECT B.FINTERID,B.FITEMID,B.FICMOINTERID,ISNULL(A.FOUTQTY,B.FOUTQTY)FOUTQTY
FROM #TB B
LEFT JOIN #TA A
ON (A.FINTERID=B.FINTERID AND A.FITEMID=B.FITEMID)
WHERE EXISTS (SELECT NULL FROM #TA WHERE FINTERID=B.FINTERID AND FBILLNO=@condition)
FINTERID FITEMID FICMOINTERID FOUTQTY
-------- ------- ------------ -----------
003 001-1 09003001 80
003 001-2 09003001 50
003 001-3 09003001 40
(3 row(s) affected)
foutbillno=test-2得出这样的结果:应该为下面的吧?
FINTERID FITEMID FICMOINTERID FOUTQTY
-------- ------- ------------ -----------
003 001-1 09003001 20
003 001-2 09003001 100
003 001-3 09003001 40
(3 row(s) affected)
select b.finterid, b.fitemid, b.ficmointerid, isnull(a.foutqty,b.foutqty)foutqty
from #ta a right join #tb b on a.finterid=b.finterid and a.fitemid=b.fitemid
where exists (select 1 from #ta where finterid=b.finterid and foutbillno='test-1')