我创建了一个向我发送电子邮件的程序,但我错了。长期的 列t,S,Tr。我是否需要投射此列?
DECLARE @table NVARCHAR(MAX) ;
SET @table =
N'<H1>some Report</H1>' +
N'<table style="width:100%">' +
N'<tr><th>D</th><th>Date</th>' +
N'<th>t</th><th>S</th><th>Tr</th>' +
N'<th>M</th></tr>' +
CAST ((SELECT td=[D],'',td=[D],'',td=round([Tr],0),'',td=round([S],0),'',td=[T],'',td=[M]
FROM [tblDrtrtrttgt]
WHERE [p] > dateadd (dd, -3, getdate())
order BY [S] desc
FOR XML PATH('tr'), TYPE
) AS NVARCHAR(MAX) ) +
N'</table>' ;
EXEC msdb.dbo.sp_send_dbmail @recipients='someemail@gmail.com',
@subject = 'EmailofWork',
@body = @table,
@body_format = 'HTML' ;
表格列中的数字: 7.740000000000000e + 003 1.525855000000000e + 006 8.778700000000000e + 004 3.029000000000000e + 005
答案 0 :(得分:0)
如你所想,施法应该有所帮助。
尝试使用类似内容的内部SELECT;
SELECT
td=[Description],
'',
td=convert(nvarchar(32), [Date], 102),
'',
td=cast(cast(round([Transactions],0) as int) as nvarchar(32)),
'',
td=cast(cast(round([Sales],0) as int) as nvarchar(32)),
'',
td=[Traffic],
'',
td=[Members]
FROM
[ffb].[dbo].[tblDashboard]
WHERE
[Updated] > dateadd (dd, -3, getdate())
order BY
[Sales] desc
FOR XML
PATH('tr'), TYPE
有关这些功能的帮助,请参阅Cast and Convert的MSDN文档。
希望这有帮助。
里斯