日期:2014-05-17  浏览次数:20590 次

判断条件
有A、 B两个表:
A 有CA1,CA2,CA3三个字段;
B 有CB3,CB4两个字段;
AB通过CA3 = CB3关联;

当CA1为 01,02,03,04任一值,且CA2为A或者K时,
B中对应的必须有两条或以上记录,且CB4的值必须是 10,13,15中任意不同两个值时, 执行statement1

当CA1为 01,02,03,04任一值,且CA2为S时,
B中对应的必须有两条或以上记录,且CB4的值必须是 11,12,15中任意不同两个值时, 执行statement2


请教这样的查询语句怎么写?

------解决方案--------------------
if exists(select 1
from A  inner join B on A.CA3=b.CB3
where a.CA1 in('01','02','03','04') and a.CA2 in('A','K') and b.CB4 in(10,13,15)
group by a.CA1
having count(b.CB4)>=2)

--statement1

if exists(select 1
from A  inner join B on A.CA3=b.CB3
where a.CA1 in('01','02','03','04') and a.CA2 ='S' and b.CB4 in(11,12,15)
group by a.CA1
having count(b.CB4)>=2)
--statement2