2013-03-13 91 views
1

例如,我有一个查询Q,返回客户ID与办公室。 但是,我有一个单独的查询S,其中包含应在特定上下文中硬编码到亚特兰大的客户ID列表。如何在查询中替换某个值,如果它满足某些条件?

因此,如何将我说“运行查询Q,但如果客户ID存在于S,然后,而不是使用正常办公值,使用从S办公室值”

实施例Q:查询:选择客户ID,任期自sourceTable会

实例S:表:列表客户ID的

所以对于我是否显示q乘以本身假设的例子,我有:

JONES1  Las Vegas 
SMITH2  Miami 

但JONES1是S,所以我希望它实际显示

JONES1  Atlanta 
SMITH2  Miami 

(所有CUSTID S中的应显示亚特兰大,当我拉起Q)

+0

使用查询设计窗口,添加两个表并添加联接,方法是将相关字段从一个表拖到另一个表中,右键单击刚刚拖动的行,并确保从Q中选择了所有记录,并且只从S中选择了相关记录。选择你想要的字段。切换到SQL视图并将sql发回到这里,并附上关于哪里不适合您的需求的说明(如果有)。 – Fionnuala 2013-03-13 20:42:25

+0

您可以在查询S上使用主查询中的Nz()函数进行外连接。如果您编辑问题以显示查询Q和查询S,我可以更好地解释。 – grahamj42 2013-03-13 20:43:26

+0

用一些示例SQL更新了OP – DoubleBass 2013-03-13 20:47:36

回答

0

尝试在这些线路上的东西:

SELECT q.CustID, IIf(IsNull(s.Office), q.Office, s.Office) 
FROM SourceTable q 
LEFT JOIN s 
ON q.CustID = s.CustID 
+0

我的Q查询实际上比我所示的要复杂得多;有没有办法从设计视图窗口做到这一点? – DoubleBass 2013-03-13 20:59:04

+0

也许你没有机会阅读我对你的文章的评论,该文章描述了如何使用查询设计窗口来实现这一点? – Fionnuala 2013-03-13 21:03:05

+0

我刚刚再次看到它,这就是为什么我继续前进并接受这个答案。谢谢! – DoubleBass 2013-03-13 21:03:41

相关问题