我想统计一个字段,但条件不能放一块
我现在是这样做的
SELECT A.CONTRACTNO, COUNT(A.CONTRACTNO) AS COUNT1,
          (SELECT COUNT(A.CONTRACTNO)
         FROM A LEFT OUTER JOIN
               ST_BUYCUST D ON A.ContractNo = D .ContractNo AND 
               A.ItemID = D .ContractItemID
         WHERE D .DELETED IS NOT NULL OR
               D .DELETED = '0' AND C.STATUS = '35') AS count2
FROM ST_CONTRACTDT as A RIGHT OUTER JOIN
      ST_CONTRACT B ON A.ContractNo = B.ContractNo RIGHT OUTER JOIN
      ST_BOOK C ON B.BOOKNO = C.BOOKNO
WHERE (C.STATUS = '30') AND (C.DELETED IS NOT NULL) OR
      (C.DELETED = '0')
GROUP BY A.CONTRACTNO
不知道能不能看出我意思来,但问题是子查询中不能调用 A 表?不知道有什么方法 谢谢各位

解决方案 »

  1.   

    SELECT A.CONTRACTNO, COUNT(A.CONTRACTNO) AS COUNT1,
              (SELECT COUNT(A.CONTRACTNO)
             FROM ST_CONTRACTDT  A LEFT OUTER JOIN
                   ST_BUYCUST D ON A.ContractNo = D .ContractNo AND 
                   A.ItemID = D .ContractItemID
             WHERE D .DELETED IS NOT NULL OR
                   D .DELETED = '0' AND C.STATUS = '35') AS count2
    FROM ST_CONTRACTDT as A RIGHT OUTER JOIN
          ST_CONTRACT B ON A.ContractNo = B.ContractNo RIGHT OUTER JOIN
          ST_BOOK C ON B.BOOKNO = C.BOOKNO
    WHERE (C.STATUS = '30') AND (C.DELETED IS NOT NULL) OR
          (C.DELETED = '0')
    GROUP BY A.CONTRACTNO
      

  2.   

    只能在子查询中重新在 ST_CONTRACTDT 中查询 不能直接用 表别名 A 吗?