1

我正在生成报告以仅在 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' ;
4

0 回答 0