我正在生成报告以仅在 Outlook 中显示。SQL Server
(未使用编辑器)
这是我的代码。我的数据库中有列名"Fee"
。我需要汇总总费用并在HTML
表格中显示为"Total Fee"
。
由于我已经将AS用于 [Fee] AS 'td',因此我该如何编码?
Select SUM(Fee) as 'Total'
进入表数据'td'?
我应该如何编码?请高手帮忙。谢谢!
enter code here
USE MYS
DECLARE @YTD varchar (4000)
DECLARE @BODY NVARCHAR(MAX)
DECLARE @HTMLHEADER VARCHAR(100)
DECLARE @HTMLFOOTER VARCHAR(100)
--Start of HTML page
SET @HTMLHEADER='<html><body>'
SET @HTMLFOOTER ='</body></html>'
-- Set html header
SET @BODY = @HTMLHEADER
+ '<meta charset="UTF-8">'
+ '<style>'
+ 'td {border: solid black;
font: 12px arial} '
+ '</style>'
+ 'Report generated on : '
+ CONVERT(VARCHAR(50), GETDATE(), 106)
--set table layout for YTD with header
Declare @YTD_HEADER VARCHAR(MAX)
Set @YTD_HEADER = '<style>'
+ 'td {border: solid black;
border-width: 1px;
padding-left:5px;
padding-right:5px;
padding-top:1px;
padding-bottom:1px;
word-break: break-all;
word-wrap: break-word;
font: 12px arial} '
+ '</style>'
+ '<H3>Year to Date</H3><table class "YTD_CSS" border = 1 width="1000"><tr> <td bgcolor=#F0E68C><b>Client ID</b></td><td bgcolor=#F0E68C><b>Total Fee</b></td></tr>'
--select data
SET @YTD = CAST((
SELECT [ClientID] AS 'td',''
,[Fee] AS 'td',''
FROM frmTblName
WHERE [ClientID] = 'Mike'
ORDER BY [Date] DESC
FOR XML PATH('tr'), ELEMENTS ) AS VARCHAR(MAX))
SET @BODY = @BODY + @YTD_HEADER + @YTD +'</table>'
--ending for HTML page
SET @BODY = @BODY + @HTMLFOOTER
USE R_Email
--SEND EMAIL
EXEC msdb.dbo.sp_send_dbmail
@profile_name='ProfileName',
@body = @BODY,
@body_format ='HTML',
@recipients = 'mc@outlook.com.my',
@copy_recipients ='sauternes_chocg@hotmail.com',
@subject = 'Monthly Report' ;