【发布时间】:2021-03-11 04:15:21
【问题描述】:
我在 SSMS 中运行以下查询,您可以看到它显示了来自不同数据库的多个表中的结果。
如何将表格合并为一个?
我尝试将 UNION 和 UNION ALL 添加到 SELECT @Sql = COALESCE(@Sql + ' UNION ' + CHAR(13) + CHAR(10), '' ) + 中,但出现 Cannot resolve the collation conflict between "Latin1_General_CI_AS" and "SQL_Latin1_General_CP1_CI_AS" in the UNION operation. 错误
任何想法将不胜感激!
DECLARE @table table(dbname sysname COLLATE Latin1_General_CI_AS)
INSERT INTO @table(dbname)
SELECT NAME COLLATE Latin1_General_CI_AS FROM sys.databases where name like '%AccountsLive'
DECLARE @Sql NVARCHAR(MAX) = NULL;
SELECT @Sql = COALESCE(@Sql + CHAR(13) + CHAR(10), '' ) +
'SELECT c_broker, det_costheader, cuname, ch_name, CONVERT(VARCHAR(11),ch_date_req,103) AS ''Flight_Date'', IIF(OUT.outstanding>0, ''Yes'', ''No'') AS ''Anything_Outstanding?'', sum(c_grossmargin)/2 AS ''Gross_Margin'' FROM '
+ QUOTENAME(dbname) COLLATE Latin1_General_CI_AS + '.dbo.AT_ACS_COMMISSIONS AS COM
LEFT JOIN ' + QUOTENAME(dbname) COLLATE Latin1_General_CI_AS + '.dbo.AT_ACS_PROJECTOUTSTANDING AS OUT
ON COM.det_costheader = OUT.project
WHERE c_broker = ''HKGCGOJT''
GROUP BY det_costheader, c_broker, cuname, ch_name, ch_date_req, outstanding'
FROM @table
exec( @Sql );
【问题讨论】:
-
将您的 sql 复制到您的问题的文本中,并在有人可以帮助您之前很好地格式化它
-
对不起 - 我认为图片会更好......我已经编辑它现在以文本形式显示代码
-
请添加第二个您想要联合的查询。
-
@KaziMohammadAliNur - 没有第二个查询,只有这个。当我运行此查询时,它会根据数据库将结果生成到单个表中。我只想为这个查询生成一个表......这可能吗?
-
将结果插入到临时表中
标签: sql-server ssms