【问题标题】:Data Type Mismatch In Criteria Expression error in join query联接查询中的条件表达式中的数据类型不匹配错误
【发布时间】:2015-12-16 08:32:54
【问题描述】:

我正在尝试将查询表 qryJoinValidTXwithStationScaling 连接到基本表 timezonesCombined 以使表中的单个字段 TZfactor 可用于更大的查询。这看起来很简单,但我得到了

条件表达式中的数据类型不匹配

当我运行查询时。

这是 SQL:

SELECT qryJoinValidTXwithStationScaling.EbiquityId,
       qryJoinValidTXwithStationScaling.AdTitle,
       qryJoinValidTXwithStationScaling.Brand,
       qryJoinValidTXwithStationScaling.Product,
       qryJoinValidTXwithStationScaling.TransmissionDate,
       qryJoinValidTXwithStationScaling.tTime,
       qryJoinValidTXwithStationScaling.Region,
       qryJoinValidTXwithStationScaling.nMedium,
       qryJoinValidTXwithStationScaling.[Scaling Factor],
       qryJoinValidTXwithStationScaling.ZoneLookup,
       timezonesCombined.TZFactor
FROM qryJoinValidTXwithStationScaling
  INNER JOIN timezonesCombined
    ON qryJoinValidTXwithStationScaling.ZoneLookup = timezonesCombined.[Zone#];

希望有人能帮忙,在此先感谢

【问题讨论】:

  • 曾经考虑过使用表别名吗? (例如INNER JOIN timezonesCombined AS tc ON q.ZoneLookup = tc.[Zone#]。)
  • qryJoinValidTXwithStationScaling.ZoneLookuptimezonesCombined.[Zone#] 列的数据类型是什么?看起来它们不同,因此 Access 无法正确比较它们。
  • 感谢@jarlh,我是 Acces 和 SQL 的新手,但出于必要,我已经开始在超出构建表达式的查询中使用别名,但看不出它在这种情况下有何帮助?
  • @SergeyS。两者都是没有空值的数字,TZfactor 是小数点后 4 位,Zonelookup 是检查 tTime 中每个 [Zone#] 的 Start 和 End 之间的时间并返回区域编号(从 1 到 11 的整数)的结果。奇怪的是,当我刚才在家里打开这个查询时(Windows 10,Office 2016)(Work is WIndows7,Office 2013),这个查询并没有抛出同样的错误。但是,它从 [TZfactor] 中获取了错误的值。我会进一步调查,感谢您迄今为止的帮助。
  • 尝试从 [TZfactor] 获取正确的值,现在它再次抛出数据类型不匹配错误。

标签: sql ms-access


【解决方案1】:

通过返回到 qryJoinValidTXwithStationScaling 并使用每个时区的 tTime 标准(在 starttime 和 endtime 之间)来解决它,然后为 Zone#(1 到 11)添加相关标准,返回正确的 TZfactor。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多