我是Access查询和SQL语法的新手,并尝试构建以下内容:
给定两个表A和B,其中字段x(键),y,z对两个表都是通用的,而Bx是Ax的子集,我如何生成一个从Ax填充query.x的查询,来自By的query.y和来自Bz的query.z,除非Ax值对A是唯一的,在这种情况下,query.y和query.z应分别来自Ay和Az。
使用Design View条件我试过这个(转换为SQL):
SELECT A.x
FROM A LEFT JOIN B ON A.x = B.x
WHERE B.y = IIf( A.x Like 'T*', A.y, B.y )
AND B.z = IIf( A.x Like 'T*', A.z, B.z )
我使用了Like 'T*'
,因为x
的唯一A
值以T
开头,我认为这可能会捕获存在差异的情况。
答案 0 :(得分:1)
不确定是否可以使用设计器重建以下查询:
SELECT A.x, B.y, B.z
FROM A INNER JOIN B ON A.x = B.x
UNION
SELECT A.x, A.y, A.z
FROM A WHERE x NOT IN ( SELECT x FROM B );