日期:2014-05-19  浏览次数:20577 次

邹健等大侠请忙,请问有内外联的sql结果集的过滤问题!
SELECT   hd_sctzd_dtl.tlno,      
                  hd_sctzd_dtl.perqty,      
                  hd_sctzd_dtl.totalqty,      
                  hd_sctzd_dtl.unitno,      
                  hd_sctzd_dtl.unitnocims,      
                  hd_sctzd_dtl.bpno,      
                  hd_sctzd.scno,      
                  hd_sctzd.itemno,      
                  isnull(send.sendqty,0)   as   sqty
        FROM   hd_sctzd_dtl,      
                  hd_sctzd,
(
SELECT   tlno,bpno,sum(sqty)   as   sendqty
from   hd_clckck,hd_clckck_dtl  
WHERE   (     hd_clckck_dtl.sendno=hd_clckck.sendno   )  
GROUP   BY   tlno,bpno
)   as   send  
WHERE   (   hd_sctzd_dtl.tlno   =   hd_sctzd.tlno   )  
and   hd_sctzd_dtl.bpno   *=send.bpno   and   hd_sctzd_dtl.tlno   *=send.tlno
ORDER   BY   hd_sctzd.scno,hd_sctzd_dtl.tlno,hd_sctzd_dtl.bpno   ASC      

如果返回hd_sctzd_dtl.totalqty   =   sqty   或者hd_sctzd_dtl.totalqty   <>   sqty的结果集???谢谢!

------解决方案--------------------
原來是*=的問題。

try

--hd_sctzd_dtl.totalqty <> sqty
SELECT hd_sctzd_dtl.tlno,
hd_sctzd_dtl.perqty,
hd_sctzd_dtl.totalqty,
hd_sctzd_dtl.unitno,
hd_sctzd_dtl.unitnocims,
hd_sctzd_dtl.bpno,
hd_sctzd.scno,
hd_sctzd.itemno,
isnull(send.sendqty,0) as sqty
FROM hd_sctzd_dtl
Inner Join
hd_sctzd
On hd_sctzd_dtl.tlno = hd_sctzd.tlno
Left Join
(
SELECT tlno,bpno,sum(sqty) as sendqty
from hd_clckck,hd_clckck_dtl
WHERE ( hd_clckck_dtl.sendno=hd_clckck.sendno )
GROUP BY tlno,bpno
) as send
On hd_sctzd_dtl.bpno =send.bpno and hd_sctzd_dtl.tlno =send.tlno
where hd_sctzd_dtl.totalqty != isnull(send.sendqty,0) --
ORDER BY hd_sctzd.scno,hd_sctzd_dtl.tlno,hd_sctzd_dtl.bpno ASC