結果を表形式でメールに送信するクエリがあります。このリンクを参考にしています。https://www.mssqltips.com/sqlservertip/2347/send-email-in-a-tabular-format-using-sql-server-database-mail/
必要なデータを含むメールを正常に送信できますが、値が希望どおりではありません。
HTML を使用せずにクエリを実行すると、正しい形式の値が得られます。
HTML表形式を実装するときに、科学表記法ではなく固定値を取得するスクリプトで何をする必要がありますか? どんな助けでも大歓迎です。
DROP TABLE #timetot
DECLARE @intVar INT
SET @intVar=0;
;
WITH ss
AS (SELECT a.rowid,
a.employee,
Sum(b.value) AS Total
FROM employeetimesheets b
RIGHT JOIN employees a
ON a.rowid = b.empid
WHERE b.day >= Dateadd("d", -6, '2015-10-10')
AND b.day <= Dateadd("d", -0, '2015-10-10')
GROUP BY a.rowid,
a.employee
UNION ALL
SELECT rowid,
employee,
@intVar AS Total
FROM employees
EXCEPT
SELECT empid,
employee,
@intVar AS Total
FROM employeetimesheets a
INNER JOIN employees b
ON a.empid = b.rowid
WHERE a.day >= Dateadd("d", -6, '2015-10-10')
AND a.day <= Dateadd("d", -0, '2015-10-10'))
SELECT *
INTO #timetot
FROM ss
DECLARE @xml NVARCHAR(max)
DECLARE @body NVARCHAR(max)
SET @xml = Cast((SELECT [rowid] AS 'td',
'',
[employee] AS 'td',
'',
[total] AS 'td',
''
FROM #timetot
ORDER BY rowid
FOR xml path('tr'), elements) AS NVARCHAR(max))
SET @body ='<html><body><H3>Employees with Un-finished or Null Timesheets</H3> <table border = 1> <tr> <th> RowId </th> <th> Employee </th> <th> Total </th> </tr>'
SET @body = @body + @xml + '</table></body></html>'
EXEC msdb.dbo.Sp_send_dbmail
@profile_name = '***',
@body = @body,
@body_format ='HTML',
@recipients = '****.com',
@subject = 'E-mail in Tabular Format';