SQL拼接 html 发送
--在Job BES_Daily_FTP_filedownload 中使用
ALTER proc [dbo].[RSP_FN_UNAPPLIED_Mail_Reminder]
as
Declare @MailAddr varchar(max)
DECLARE @xml NVARCHAR(MAX)
DECLARE @body NVARCHAR(MAX) --Generate receive person list
set @MailAddr = ''
select @MailAddr=@MailAddr+s.User_Mail+';'
from Mst_UserInfo s
where User_IsValid=1 and substring(User_IsMail,1,1)='' and User_Mail is not null and User_Mail!=''
order by s.User_Mail
--print @MailAddr --generate mail body
SET @xml =
CAST((
SELECT [Business_Unit] 'td',''
,isnull([Customer_Name],remitter_name) 'td',''
,[Receipt_No] 'td',''
,convert(varchar(10),[Receipt_Date],120) 'td',''
,convert(varchar(100),cast(Receipt_Unapplied_Amount as money),1) 'td','' --Commas every three digits
,convert(varchar(100),cast(Receipt_Amount as money),1) 'td',''
,[Currency_Name] 'td',''
,Bank_Name 'td' ,''
,[Receipt_Remark] 'td'
-- ,[Bank_Account]
-- ,[Customer_JDE_No]
-- ,[Receipt_Year]
-- ,[Receipt_Period]
-- ,[Remitter_Bank_Name]
-- ,[Bank_Branch]
-- ,[Bank_Account]
-- ,[Bank_Charge_Amount]
-- ,[Receipt_Type]
-- ,[Receipt_GL_Date]
-- ,[Receipt_Applied_Amount]
-- ,[Receipt_Status]
-- ,[Receipt_Status_No]
-- ,[Batch_Name]
-- ,[Batch_Status]
-- ,[Customer_Oracle_no]
-- ,[Action_Date]
-- ,[Serial_No]
-- ,[Receipt_Remark]
-- ,[IsHistory]
-- ,[Download_Date]
FROM [BankReceipt]
left join mst_bankinfo on [Remitter_Bank_Name] = bank_id
Where receipt_status_no in (100,300,1000) and business_unit in ('pvg','pws','sgc') and Receipt_Status<>'Unidentified'
order by Receipt_No desc
FOR XML PATH('tr'), ELEMENTS ) AS NVARCHAR(MAX)) SET @body ='<html><H1>Unapplied Receipt Report</H1>
<body><style type="text/css">
h1,body{font:10pt,"Arial"}
h1{font:small-caps 14pt}
table,td,th {border:1px solid #7F7F7F;border-collapse:collapse;}
table{width:100%}
th{background-color:#C0C0C0;font-weight:bold}
</style>
<table>
<tr>
<th>Entity</th>
<th>Remitter Name</th>
<th>Receipt No</th>
<th style="width:82px">Receive Date</th>
<th>Receipt Remain Amt</th>
<th>Receipt Total Amt</th>
<th>Currency</th>
<th>Remitter Bank Name</th>
<th>Receipt Remark</th>
</tr>'
SET @body = @body + @xml +'</table></body></html>' --send mail
--EXEC msdb.dbo.sp_send_dbmail
--@blind_copy_recipients = @MailAddr,
--@body = @body,
--@body_format ='HTML',
--@subject ='Unapplied Receipt Report' exec msdb.dbo.CL_SendSingleMail
''--sendtousermailSysMail [Sys.Admin@emerson.com]
,''--cc
,@MailAddr--@MailAddr--bcc
,'SysMail'--sendername
,'Sys.Admin@emerson.com'--senderaddr
,'Unapplied Receipt Report'--mailsubject
,@body--mailcontent
,'normal' --importance low/normal/high
SQL拼接 html 发送的更多相关文章
- COALESCE在SQL拼接中的大用途
SQL拼接可以使得代码比较灵活,不会那么死板,对于维护也比较方便. 下面是简单的SQL拼接,同时也包含了隐式游标的概念吧,可以遍历表中的每一个字段 -------------------------- ...
- SQL拼接备份数据库
在SQLserver使用脚本备份数据库的时候需要注意的问题是: 1.指向的文件名必须是有读写权限. 2.在使用批量数据库备份时候需要根据自己需求选择性备份. -- ================== ...
- Mybatis.net与MVC入门配置及联合查询动态SQL拼接和简单事务
第一次学习Mybatis.net,在博客园也找到好多资料,但是在配置成功之后也遇到了一些问题,尤其是在动态SQl拼接时候,这里把遇到的问题还有自己写的一个Demo贴出来,希望能帮到新手,有不适合的地方 ...
- SQL拼接方法
smark Beetle可靠.高性能的.Net Socket Tcp通讯组件 另类SQL拼接方法 在编写SQL的时候经常需要对SQL进行拼接,拼接的方式就是直接String+处理,但这种情况有个不好的 ...
- 配置 SQL Server Email 发送以及 Job 的 Notification通知功能
配置 SQL Server Email 发送以及 Job 的 Notification通知功能 在与数据库相关的项目中, 比如像数据库维护, 性能警报, 程序出错警报或通知都会使用到在 SQL Ser ...
- 另类SQL拼接方法
在编写SQL的时候经常需要对SQL进行拼接,拼接的方式就是直接String+处理,但这种情况有个不好的地方就是不能对SQL进行参数化处理.下面介绍一种就算基于String +的方式也可以进行SQL参数 ...
- SQL拼接大法
SQL拼接大法: Step1:括号先写上() Step2:在括号内写上(, , , , , ,) Step3:再写上单引号(,' ' ...
- 多条件搜索问题 -sql拼接与参数化查询
来源:传智播客 免费开发视频. 问题:根据书名或出版社或作者查询书籍信息. using System; using System.Collections.Generic问题; using Syste ...
- 巧用SQL拼接语句
前言: 在日常数据库运维过程中,可能经常会用到各种拼接语句,巧用拼接SQL可以让我们的工作方便很多,达到事半功倍的效果.本篇文章将会分享几个日常会用到的SQL拼接案例,类似的SQL还可以举一反三,探索 ...
随机推荐
- CH的电影推荐
1.推荐电影 张艺谋:一个都不能少 2.下载站点 TL95
- input获取、失去焦点对输入内容做验证
获取焦点 # 重新获取焦掉后,会将指定标签中的css样式删除,这里为标记错误的css样式(将文本框标红) $("form input").focus(function () { $ ...
- 【CF453D】 Little Pony and Elements of Harmony(FWT)
题面 传送门 设\(a\)的递推公式为 \[a_i=\sum_ja_jb[count(i\oplus j)]\] 其中\(\oplus\)为异或,\(count(i)\)表示\(i\)的二进制中\(1 ...
- [ActionSprit 3.0] FMS服务器带宽检测
package { import flash.display.Sprite; import flash.net.NetConnection; import flash.events.NetStatus ...
- Android来电、去电监听
Android手机中添加手机来电的状态,使用PhoneStateListener来监听. TelephonyManager telephonyManager = (TelephonyManager) ...
- RN_ 错误整理
1. this.setState is not a function 或者 this.setState is undefined 在 constructor 中加入 this.select = t ...
- jenkins 判断是手动触发还是定时器触发
根据变量BUILD_CAUSE的值可以判断本次触发是手动触发还是定时器触发 手动触发:MANUALTRIGGER 定时器触发:TIMERTRIGGER
- css第二篇:样式的特殊性、重要性、继承和层叠
特殊性: 假设有几个不同的规则改变的都是同一个元素的值,那么哪一个规则将会胜出呢?这就得靠特殊值啦,什么是特殊值呢?特殊值的大小呢?如下图: 值越大代表越牛,如1,0,0,0永远大于0,X,X,X ...
- POJ_3468 A Simple Problem with Integers 【线段树区间查询+修改】
一.题目 POJ3468 二.分析 裸的线段树区间查询+修改. 三.AC代码 #include <cstdio> #include <iostream> #include &l ...
- Sklearn,TensorFlow,keras模型保存与读取
一.sklearn模型保存与读取 1.保存 from sklearn.externals import joblib from sklearn import svm X = [[0, 0], [1, ...