【问题标题】:SQL Union query that produces Data Type Mismatch error产生数据类型不匹配错误的 SQL 联合查询
【发布时间】:2019-02-25 07:13:19
【问题描述】:

我在 Access 2007-2010 中创建了以下查询

SELECT [Zip Code Count].[Zip Code], [Zip Code Count].CountOfAddress1
FROM [Zip Code Count]
WHERE [Zip Code Count].[Zip Code] NOT IN (Select [Zip Code List].[Zip Code] From [Zip Code List])

UNION  

Select [Covered Zips Count].[Zip Code], [Covered Zips Count].CountOfAddress1
FROM [Covered Zips Count]
Where [Covered Zips Count].CountOfAddress1 < 10;

Covered Zip CountsZip Code Count 都是来自更大(800 多条记录)数据集的聚合查询。 Zip Code List 是一个简单的特定邮政编码表。

我要做的是列出那些不在Zip Code List 中的邮政编码加上那些在列表中但记录总数少于 10 的邮政编码(这是必要的通过邮政服务批量邮寄)。

我收到以下错误。

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

两个查询部分各自工作得非常好。两个查询的输出完全相同:邮政编码是文本,计数是整数。这个查询似乎应该可以正常工作,但它拒绝了。

【问题讨论】:

  • [Zip Code Count].[Zip Code][Covered Zips Count].[Zip Code] 列的数据类型是什么?它们必须相同。此外,[Zip Code Count].CountOfAddress1[Covered Zips Count].CountOfAddress1 需要具有相同的数据类型。

标签: sql ms-access


【解决方案1】:

我想我解决了这个问题......好吧。我尝试进行单独的查询,然后将它们合并到另一个查询中。这给了我同样的错误,所以我试图删除其中一个字段。然后我收到错误“查询太复杂”。所以我猜测该软件无法处理它。

我最终将邮政编码的原始聚合查询变成了 Make Table 查询。一旦我有了一组可靠的数据,我首先尝试的 UNION 查询就可以完美运行。

【讨论】:

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