SELECT  ITEMCODE  AS  WL,WAREHOUSE  AS  CK,0  AS QCINQTY,0  AS QCOUTQTY,0 AS   QCPRICEC,(
select  ttt.qjinqty-ttt.cgth-ttt.cgfpth-ttt.xsth-ttt.xsfpth   as qjinqtyfrom(SELECT  inqty  as qjinqty ,(select inqty from oinm where transtype='16' and  DOCDATE>=@QSRQ  AND DOCDATE<=@ZZRQ ) as cgth,(select inqty from oinm where transtype='13' and DOCDATE>=@QSRQ  AND DOCDATE<=@ZZRQ ) as cgfpth,(select outqty from oinm where transtype='21' and  DOCDATE>=@QSRQ  AND DOCDATE<=@ZZRQ)  as xsth,(select inqty from oinm where transtype='18' and  DOCDATE>=@QSRQ  AND DOCDATE<=@ZZRQ) as xsfpth,outqty as  qjoutqtyFROM    OINM)  as ttt)  as qjinqty,(
select  ttt.qjoutqty-ttt.cgth-ttt.cgfpth-ttt.xsth-ttt.xsfpth as qjoutqtyfrom(SELECT  inqty  as qjinqty ,(select inqty from oinm where transtype='16' and  DOCDATE>=@QSRQ  AND DOCDATE<=@ZZRQ ) as cgth,(select inqty from oinm where transtype='13' and DOCDATE>=@QSRQ  AND DOCDATE<=@ZZRQ ) as cgfpth,(select outqty from oinm where transtype='21' and  DOCDATE>=@QSRQ  AND DOCDATE<=@ZZRQ)  as xsth,(select inqty from oinm where transtype='18' and  DOCDATE>=@QSRQ  AND DOCDATE<=@ZZRQ) as xsfpth,outqty as  qjoutqtyFROM    OINM)  as ttt) as qjoutqty,        PRICEC AS   QJPRICEC,0  AS QMINQTY,0  AS QMOUTQTY,0 AS   QMPRICECfrom  OINM
WHERE   DOCDATE>=@QSRQ  AND DOCDATE<=@ZZRQ
子查询返回的值多于一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或  子查询用作表达式时,这种情况是不允许的。   这是怎么回事?帮忙解决 谢谢!  

解决方案 »

  1.   

    SELECT  ITEMCODE  AS  WL,WAREHOUSE  AS  CK,0  AS QCINQTY,0  AS QCOUTQTY,0 AS  QCPRICEC,(
    select  ttt.qjinqty-ttt.cgth-ttt.cgfpth-ttt.xsth-ttt.xsfpth  as qjinqtyfrom(SELECT  inqty  as qjinqty ,(select top 1 inqty from oinm where transtype='16' and  DOCDATE>=@QSRQ  AND DOCDATE <=@ZZRQ ) as cgth,(select top 1 inqty from oinm where transtype='13' and DOCDATE>=@QSRQ  AND DOCDATE <=@ZZRQ ) as cgfpth,(select top 1 outqty from oinm where transtype='21' and  DOCDATE>=@QSRQ  AND DOCDATE <=@ZZRQ)  as xsth,(select top 1 inqty from oinm where transtype='18' and  DOCDATE>=@QSRQ  AND DOCDATE <=@ZZRQ) as xsfpth,outqty as  qjoutqtyFROM    OINM)  as ttt)as qjinqty,(
    select ttt.qjoutqty-ttt.cgth-ttt.cgfpth-ttt.xsth-ttt.xsfpth as qjoutqtyfrom(SELECT  inqty  as qjinqty ,(select top 1 inqty from oinm where transtype='16' and  DOCDATE>=@QSRQ  AND DOCDATE <=@ZZRQ ) as cgth,(select top 1 inqty from oinm where transtype='13' and DOCDATE>=@QSRQ  AND DOCDATE <=@ZZRQ ) as cgfpth,(select top 1 outqty from oinm where transtype='21' and  DOCDATE>=@QSRQ  AND DOCDATE <=@ZZRQ)  as xsth,(select top 1 inqty from oinm where transtype='18' and  DOCDATE>=@QSRQ  AND DOCDATE <=@ZZRQ) as xsfpth,outqty as  qjoutqtyFROM    OINM)  as ttt)as qjoutqty,        PRICEC AS  QJPRICEC,0  AS QMINQTY,0  AS QMOUTQTY,0 AS  QMPRICECfrom  OINM
    WHERE  DOCDATE>=@QSRQ  AND DOCDATE <=@ZZRQ加上top 1
      

  2.   

    加上top 1 还是一样的抱错  希望大家再帮忙看看