【问题标题】:Excel Jet Access, Left Join OR/ANDExcel Jet Access,左连接 OR/AND
【发布时间】:2019-03-22 04:02:01
【问题描述】:

我有这个关于喷气机访问语法的查询。我在内部查询 excel 表。

select 
cdbl(fs.[Market Value]) as Value
from [database$] as data 
left join [AS$] as fs on data.[FIELD1]=fs.[field1]

我尝试过诸如OR data.[FIELD2]=fs.[field2] 之类的东西,但无法让它们工作。

如何为 feild2 添加OR?如何为 field3 添加ADD

逻辑是,左连接字段 1 OR field2,AND field3。 如果这些都不是,请左加入 field4 AND field3, 如果这些都不返回 0/null。

【问题讨论】:

  • 这听起来好像您的数据存储不正确。多个字段不应具有相同的内在价值。你的用户名会暗示你有一个像电子表格一样的表格,它没有被规范化。
  • 是的,这是我电子表格中的内部查询。抱歉应该提到。

标签: excel ms-access jet


【解决方案1】:

如果您不进行简单比较,则需要在 ON 子句周围加上参数:

select 
cdbl(fs.[Market Value]) as Value
from [database$] as data 
left join [AFS$] as fs on (data.[FIELD1]=fs.[field1] OR data.[FIELD2]=fs.[field2])

请注意,如果您的唯一目的是检查某些数据是否存在,我建议使用EXISTS 子句。

【讨论】:

  • 奇怪的是 OR 似乎让我的 Excel 工作表崩溃,但 and 工作正常。你知道如何解决这个问题吗?我们可以用另一种方式做OR吗?
  • 没有这个小信息。硬崩溃非常罕见,它们通常表明正在发生一些奇怪的事情。您可以尝试提供带有示例数据的minimal reproducible example
  • 我有一个问题,所以说我做了类似(data.[FIELD1]=fs.[field1] and data.[FIELD3]=fs.[field3]) 的事情。如何为此添加另一个案例?就像如果第一个左连接不起作用那么我想在 field4 和 field3 上左连接?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-14
相关资源
最近更新 更多