【发布时间】: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.ZoneLookup和timezonesCombined.[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] 获取正确的值,现在它再次抛出数据类型不匹配错误。