以下代码通过函数sp_send_dbmail基于sql查询发送2个不同的表,catch是,如果两个表都返回结果,则电子邮件显示没有任何问题,完美。如果其中一个表格有 NO 结果,则电子邮件将完全填空。
我该如何解决这个问题?
由于
declare @tableHTML NVARCHAR(MAX);
set @tableHTML = N'Este foi o resultado de Faturas Emitidas: <br><br><table border ="1">' +
N'<tr><th>Documento</th></tr>' +
cast (( select td = cc.tx
from cc
for xml path ('tr'),type) as nvarchar(max)) +
N' </table><table border ="1"><tr><th>Valor Total Vencido</th></tr>'
+
cast (( select td = fx.tc
from fx
for xml path ('tr'),type) as nvarchar(max)) +
N'</table>';
EXEC sp_send_dbmail
@profile_name ='xx_SqlMail',
@recipients ='ccccc@hotmail.com',
@subject ='Resumo',
@body =@tableHTML,
@body_format='HTML';
答案 0 :(得分:1)
我怀疑你的部分查询返回NULL值。将任何值与NULL连接将始终导致NULL。
SELECT'A'+ NULL +'B'将返回NULL。
当你进行多个连接时,这意味着如果任何值为NULL,那么@tableHTML将为NULL。尝试将选择包装在ISNULL()中。
选择ISNULL(td,'')= cc.tx ...