Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Access后端升级到SQL Server-查询问题_Sql_Sql Server_Ms Access - Fatal编程技术网

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

将Access后端升级到SQL Server-查询问题,sql,sql-server,ms-access,Sql,Sql Server,Ms Access,我对数据库的SQL Server部分完全陌生。我创建了一个功能良好的splitaccess数据库 作为测试,我将表升迁到SQLServer。大部分情况下,一切进展顺利;但是,我的两个查询不再有效。它们都是相当复杂的联合查询。我相信工会是我问题的罪魁祸首 对于第一个查询,我有两个使用UNIONALL的查询。它们单独工作,但是当我使用union查询时,我收到错误“对象无效或不再设置” 对于第二个,我有3个关于union all的查询。这些都比第一种情况简单。这一次,我收到了错误“表达式输入错误,或者

我对数据库的SQL Server部分完全陌生。我创建了一个功能良好的splitaccess数据库

作为测试,我将表升迁到SQLServer。大部分情况下,一切进展顺利;但是,我的两个查询不再有效。它们都是相当复杂的联合查询。我相信工会是我问题的罪魁祸首

对于第一个查询,我有两个使用UNIONALL的查询。它们单独工作,但是当我使用union查询时,我收到错误“对象无效或不再设置”

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

SQL server上的表的联合查询是否有一些特定的内容?任何帮助或建议都将不胜感激

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;
选择scrap.coilnum、Sum(scrap.lnff)作为sumoflnff、scrap.code、scrap.location
从废料

何处报废。日期>=[表格]![coilparameters]![Text0]和scrap.day=[Forms]![coilparameters]![text0]和sawscrap.day=[Forms]![coilparameters]![text0]和sawscrap.dayAccess
UNION
查询中此类错误的常见原因是每个
SELECT
列与另一个
SELECT
语句中相同位置的列之间的数据类型不匹配

在您的情况下,
sawscrap.coilnum
sawscrap.tcoilnum
sawscrap.bcoilnum
的数据类型是否相同?其他专栏呢?如果它们不是,您可能需要使用转换功能(例如,
CStr
CLng
)使它们具有相同的类型


查看以获取更多信息。

您能提供给出错误的SQL吗?SQL Server中的Union和Union All并不特殊。非常简单。除了表本身,所有的东西都可以访问。它们是一样的。当表位于访问后端时,完全相同的联合查询可以正常工作。当升级到SQL Server时,会显示错误。您的路径是正确的。问题不在于三个线圈编号有不同的字段类型,而是它的数据类型与我使用的参数不同。谢谢你的帮助!