我想用两个 SELECTS 做一个 UNION 并放入一个 table

I want to do a UNION with two SELECTS and put inside a table

到目前为止我有这段代码,我想让它们联合到一个问题中,但我无法让它工作。我一直在尝试做一个新的 Select 围绕转换和一切到 As Nvarchar。

DECLARE @tableHTML NVARCHAR(MAX);
SET @tableHTML = 
N'<H3>Felaktiga rader</H3>'+
N'<table border="1">'+
N'<tr><th>ID</th>'+
N'<th>Value</th>'+
N'<th>Reason</th>'+

CAST ((SELECT td=ID,'',
td = Value,'',
td = Reason,''

FROM Mail.dbo.CheckMe
WHERE Value = '120' OR Value = '220'
UNION
Mail.dbo.CheckMeTwo
WHERE Value = '120' OR Value = '220'

for XML path ('tr'), TYPE
) as NVARCHAR(MAX))+
N'</table>';

EXEC msdb.dbo.sp_send_dbmail
@recipients = 'ZZXXYY@gmail.com;',
@subject = ' Felaktiga Rader',
@body = @tableHTML,
@body_format = 'HTML';

您忘记了 select 第二个查询中的列!!!!

SELECT td=ID,'',td = Value,'', td = Reason,''
FROM Mail.dbo.CheckMe
WHERE Value = '120' OR Value = '220'
UNION
SELECT td=ID,'',td = Value,'', td = Reason,''
FROM Mail.dbo.CheckMeTwo
WHERE Value = '120' OR Value = '220'

您的 UNION 构造中的每个查询都需要一个 select 列表!

我是这样解决的

FROM (SELECT * FROM Mail.dbo.CheckMe
WHERE Value = '120' OR Value = '220'
UNION
SELECT * FROM Mail.dbo.CheckMeTwo
WHERE Value = '120' OR Value = '220') T