当一个表没有结果时,SQL HTML电子邮件显示为空白

时间:2017-11-23 15:41:05

标签: sql tsql sp-send-dbmail

以下代码通过函数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';

1 个答案:

答案 0 :(得分:1)

我怀疑你的部分查询返回NULL值。将任何值与NULL连接将始终导致NULL。

SELECT'A'+ NULL +'B'将返回NULL。

当你进行多个连接时,这意味着如果任何值为NULL,那么@tableHTML将为NULL。尝试将选择包装在ISNULL()中。

选择ISNULL(td,'')= cc.tx ...