0

我有以下要求。

**---Table A---**
CustID_1   S1    
CustID_1   S2    
CustID_2   S2    
CustID_2   S3    
CustID_3   S4 
CustID_3   S5


**---Table B---**
S1     1
S2     0
S3     1
S4     0
S5     0

我想选择所有 BS = 0 的所有 CustID。所以在上述情况下,只应选择 CustID_3。CustID_1、CustID_2 至少具有 S=1,因此它们不应出现在结果中。

感谢任何帮助。

谢谢!

4

3 回答 3

1

未经测试:

SELECT custid
  FROM A a1 
 WHERE NOT EXISTS
       (SELECT custid
          FROM A a2 JOIN B ON (a2.col2 = B.col1)
         WHERE B.col2 = 1
           AND a2.custid = a1.custid)
于 2011-05-05T19:17:52.873 回答
1
SELECT a.CustID
FROM TableA a
  INNER JOIN TableB b ON a.S = b.S
GROUP BY a.CustID
HAVING SUM(b.S) = 0
于 2011-05-05T21:52:09.047 回答
1

试试这个;它返回 B 中不存在的所有 custID以及BS 值等于 0 的所有 custID:

SELECT
    A.custID
FROM
    A
WHERE
    A.custID NOT IN
    (
        SELECT
            B.custID
        WHERE
            B.S <> 0
    )
于 2011-05-05T19:45:06.877 回答