我有一个相当简单的问题,但我碰巧知道自己不能回答这个问题。我有一个包含月度财务数据的表格,我还有另一个表格,我可以用它进行映射。在两个表中,我都有相应的三个字段/列:
我需要一直加入“运动代码”,但当JV分部账户为“[无]”时,我需要加入“JV Capex tech Area”,当“JV Capex tech area”为“[None]时“我需要加入”JV Segment Account“。所以这是一个双连接(总是包括移动代码,但有一个可变的第二个连接)。是否可以在一个查询中执行此操作?
提前致谢,
米希尔
答案 0 :(得分:1)
以下是获得答案的一种方法。要将其转换回您的表格和字段:
如果表之间的字段匹配,请选择
SELECT Table1.ID, Table1.FldA, Table1.FldB, Table2.FldA, Table2.FldB,
IIf([Table1].[FldA]=[Table2].[FldA],'Match',"") AS Same2,
IIf([Table1].[FldB]=[Table2].[FldB],'Match',"") AS Same3
FROM Table1 INNER JOIN Table2 ON Table1.ID = Table2.ID
WHERE (((IIf([Table1].[FldA]=[Table2].[FldA],'Match',""))="Match"))
OR (((IIf([Table1].[FldB]=[Table2].[FldB],'Match',""))="Match"));
答案 1 :(得分:0)
考虑一个联合查询:
SELECT *
FROM MonthlyFinancialTable f
INNER JOIN MapTable m
ON f.[Movement code] = m.[Movement code]
AND f.[JV CAPEX TECH AREA] = m.[JV CAPEX TECH AREA]
WHERE f.[JV Segment Account] = '[NONE]'
UNION ALL
SELECT *
FROM MonthlyFinancialTable f
INNER JOIN MapTable m
ON f.[Movement code] = m.[Movement code]
AND f.[JV Segment Account] = m.[JV Segment Account]
WHERE f.[JV CAPEX TECH AREA] = '[NONE]'