对于报表,我们需要合并两个不同模式的SQL Server数据库表。我试过
SELECT ControlRec FROM MercerReportTable
UNION
SELECT * FROM MercerReportTableMod
ORDER BY orderby ASC
但是这和JOIN会导致以下错误:
所有使用UNION、INTERSECT或EXCEPT运算符组合的查询的目标列表中的表达式数必须相等。
我认为这意味着它不会合并,因为表不同。
一定有办法;有人能帮忙吗?我在这里搜索了合并表,但这些帖子对我没有帮助。
谢谢!
所有使用UNION、INTERSECT或EXCEPT运算符组合的查询都必须在其目标列表中具有相同数量的表达式。
这是因为在使用以下SQL时,列数不相同。
SELECT ControlRec
FROM MercerReportTable
UNION
SELECT *
FROM MercerReportTableMod
ORDER BY orderby ASC
请尝试以下内容:
SELECT ControlRec
FROM MercerReportTable
UNION
SELECT ControlRec
FROM MercerReportTableMod
ORDER BY orderby ASC
编辑:
另一种方法是指定空列以匹配其他表中的列数,注意默认的空字符串/varchars"和默认的整数bits&日期例如:
SELECT ControlRec, '', '', '', '', '', 0, '', '2021/03/29', ''
FROM MercerReportTable
UNION
SELECT *
FROM MercerReportTableMod
ORDER BY orderby ASC