日期:2014-05-18  浏览次数:20532 次

高分求一个简单统计
表A:
C1 C2 C3
1 BA BB
2 WB BC
3 AB DS
4 EE FF
5 SD BD
表B:
C1 C2 C3
1 1 f
2 1 s
3 1 b
----------------------
以上表结构:要统计表A的数量,及表A中的C1在表B中不存在的数量:

要得到的结果.
5 2

这个SQL语句怎么写

------解决方案--------------------
SQL code
SELECT (SELECT COUNT(*) FROM [表A]) '表A的数量', (SELECT COUNT(*) FROM [表B] WHERE NOT EXISTS (SELECT 1 FROM [表A] t WHERE t.[C1]=[C1])) '表A中C1不在表B的数量'

------解决方案--------------------
SQL code

--联合查询方式
select count(1) 数量1,
    count(1)-count(B.C1) 数量2
from A
left join B on A.C1=B.C1;
--或对数量2用case when 也可以

------解决方案--------------------
探讨
引用:

SQL code

--联合查询方式
select count(1) 数量1,
count(1)-count(B.C1) 数量2
from A
left join B on A.C1=B.C1;
--或对数量2用case when 也可以

谢谢楼上二位
你的这个方式似乎是我想要的结果,麻烦再细说下CASE WHEN的方式?