升级访问后端到SQL Server - 查询问题

时间:2013-09-23 19:38:35

标签: sql sql-server ms-access

我对数据库的SQL Server部分完全不熟悉。我创建了一个运行良好的拆分Access数据库。

作为测试,我将表升迁到SQL服务器。一切顺利;但是,我的两个查询不再有效。它们都是相当复杂的联合查询。我相信工会是我问题的罪魁祸首。

对于第一个,我有两个使用union all的查询。它们单独工作,但是当我使用union查询时,我收到错误“object invalid or not longer set”。

对于第二个,我有3个查询与union all。这些比第一种情况简单。这次我收到错误“表达式输入错误,或者它太复杂而无法评估。”

是否有关于SQL服务器上的表的联合查询的具体内容?任何帮助或建议表示赞赏。

SELECT scrap.coilnum, Sum(scrap.lnff) AS sumoflnff, scrap.code, scrap.location
FROM scrap
WHERE scrap.day>=[Forms]![coilparameters]![Text0] And scrap.day<=[Forms]![coilparameters]![Text2] and scrap.productionline=[Forms]![coilparameters]![combo4] and scrap.coilnum<>0
GROUP BY scrap.coilnum, scrap.code, scrap.location;
union all
SELECT sawscrap.tcoilnum, Sum(sawscrap.length) AS sumoflnff, sawscrap.code, sawscrap.location
FROM sawscrap
WHERE sawscrap.day>=[Forms]![coilparameters]![text0] And sawscrap.day<=[Forms]![coilparameters]![text2] and sawscrap.productionline=[Forms]![coilparameters]![combo4] and sawscrap.tcoilnum is not null and sawscrap.tcoilnum<>0
GROUP BY sawscrap.tcoilnum, sawscrap.code, sawscrap.location;
UNION ALL
SELECT sawscrap.bcoilnum, Sum(sawscrap.length) AS sumoflnff, sawScrap.code, sawscrap.location
FROM sawscrap
WHERE sawscrap.day>=[Forms]![coilparameters]![text0] And sawscrap.day<=[Forms]![coilparameters]![text2] and sawscrap.productionline=[Forms]![coilparameters]![combo4] and sawscrap.bcoilnum is not null and sawscrap.bcoilnum<>0
GROUP BY sawscrap.bcoilnum, sawscrap.code, sawscrap.location;

还有第二个。

1 个答案:

答案 0 :(得分:0)

Access UNION查询中出现这类错误的常见原因是每个SELECT列与另一列SELECT中相同位置的列之间的数据类型不匹配语句(多个)。

在您的情况下,scrap.coilnumsawscrap.tcoilnumsawscrap.bcoilnum的数据类型是否相同?其他专栏怎么样?如果不是,您可能需要使用转换功能(例如CStrCLng)来使它们具有相同的类型。

有关详细信息,请查看this