A、B表数据:
---A------
DEPT AGE SEX
1001 29 男
1001 25 男
1001 25 男
1001 25 男
1002 22 女
1002 27 女
1004 35 男
----B-----
DEPT AGE SEX
1001 22 男
1001 25 女
1001 25 女
1002 35 男
1002 29 女
1002 27 男
1025 31 女查询select A.* from A,B where A.DEPT=B.DEPT AND A.AGE=B.AGE AND A.SEX<>B.SEX
结果是:
1001 25 男
1001 25 男
1001 25 男
1001 25 男 因为A有3个“1001 25 男”B有2个“1001 25 女”,所以3*2=6个
1001 25 男
1001 25 男
1002 27 女
我想A、B表中部门(DEPT)和年龄(AGE)相同,性别不同信息配对,希望得到以下结果:
1001 25 男
1001 25 男 因为B表只有2个“1001 25 女”
1002 27 女
如果不用存储过程,单个SQL如何写???
---A------
DEPT AGE SEX
1001 29 男
1001 25 男
1001 25 男
1001 25 男
1002 22 女
1002 27 女
1004 35 男
----B-----
DEPT AGE SEX
1001 22 男
1001 25 女
1001 25 女
1002 35 男
1002 29 女
1002 27 男
1025 31 女查询select A.* from A,B where A.DEPT=B.DEPT AND A.AGE=B.AGE AND A.SEX<>B.SEX
结果是:
1001 25 男
1001 25 男
1001 25 男
1001 25 男 因为A有3个“1001 25 男”B有2个“1001 25 女”,所以3*2=6个
1001 25 男
1001 25 男
1002 27 女
我想A、B表中部门(DEPT)和年龄(AGE)相同,性别不同信息配对,希望得到以下结果:
1001 25 男
1001 25 男 因为B表只有2个“1001 25 女”
1002 27 女
如果不用存储过程,单个SQL如何写???
那如果B表记录数大于等于A表记录数呢?咋办?
ID DEPT AGE SEX
1 1001 29 男
2 1001 25 男
3 1001 25 男
4 1001 25 男
5 1002 22 女
6 1002 27 女
7 1004 35 男
我觉得在A表内加一个标识就可以了
然后在SQL语句里加一个distinct
select distinct A.* from A,B where A.DEPT=B.DEPT AND A.AGE=B.AGE AND A.SEX<>B.SEX