--在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 发送的更多相关文章

  1. COALESCE在SQL拼接中的大用途

    SQL拼接可以使得代码比较灵活,不会那么死板,对于维护也比较方便. 下面是简单的SQL拼接,同时也包含了隐式游标的概念吧,可以遍历表中的每一个字段 -------------------------- ...

  2. SQL拼接备份数据库

    在SQLserver使用脚本备份数据库的时候需要注意的问题是: 1.指向的文件名必须是有读写权限. 2.在使用批量数据库备份时候需要根据自己需求选择性备份. -- ================== ...

  3. Mybatis.net与MVC入门配置及联合查询动态SQL拼接和简单事务

    第一次学习Mybatis.net,在博客园也找到好多资料,但是在配置成功之后也遇到了一些问题,尤其是在动态SQl拼接时候,这里把遇到的问题还有自己写的一个Demo贴出来,希望能帮到新手,有不适合的地方 ...

  4. SQL拼接方法

    smark Beetle可靠.高性能的.Net Socket Tcp通讯组件 另类SQL拼接方法 在编写SQL的时候经常需要对SQL进行拼接,拼接的方式就是直接String+处理,但这种情况有个不好的 ...

  5. 配置 SQL Server Email 发送以及 Job 的 Notification通知功能

    配置 SQL Server Email 发送以及 Job 的 Notification通知功能 在与数据库相关的项目中, 比如像数据库维护, 性能警报, 程序出错警报或通知都会使用到在 SQL Ser ...

  6. 另类SQL拼接方法

    在编写SQL的时候经常需要对SQL进行拼接,拼接的方式就是直接String+处理,但这种情况有个不好的地方就是不能对SQL进行参数化处理.下面介绍一种就算基于String +的方式也可以进行SQL参数 ...

  7. SQL拼接大法

    SQL拼接大法:          Step1:括号先写上() Step2:在括号内写上(,     ,     ,     ,      ,     ,) Step3:再写上单引号(,'     ' ...

  8. 多条件搜索问题 -sql拼接与参数化查询

    来源:传智播客  免费开发视频. 问题:根据书名或出版社或作者查询书籍信息. using System; using System.Collections.Generic问题; using Syste ...

  9. 巧用SQL拼接语句

    前言: 在日常数据库运维过程中,可能经常会用到各种拼接语句,巧用拼接SQL可以让我们的工作方便很多,达到事半功倍的效果.本篇文章将会分享几个日常会用到的SQL拼接案例,类似的SQL还可以举一反三,探索 ...

随机推荐

  1. C#中List调用库函数sort进行升序排序

    private void button1_Click(object sender, EventArgs e) { List<int> demo2 = new List<int> ...

  2. UiAutoMator一些常用的方法

    常用查找UiObject方法 // 通过ID查找public static UiObject findById(String text)throws UiObjectNotFoundException ...

  3. [转]解读Unity中的CG编写Shader系列5——理论知识

    经过前面的系列文章中的三个例子,尽管代码简单,但是我想应该还有些地方没有100%弄明白,我们现在得回过头来补充一些必备的数学.图形学知识 1.图形管道第一个例子中我有提到顶点着色和片段着色在整个图形绘 ...

  4. “全栈2019”Java第二十一章:流程控制语句中的决策语句if

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  5. centos6安装mysql5.7

    RPM包安装与卸载mysql 建议:装完mysql后立刻创建一个密码,不然下次登录的时候会有问题.原因是mysql 5.7会自动创建一个临时密码,过期失效,可以到grep "password ...

  6. http错误状态码

    http://www.kaiyuanba.cn/html/1/131/226/4258.htm 状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:1xx:指示信息--表示请求已接收 ...

  7. loj #6570. 毛毛虫计数

    $ \color{#0066ff}{ 题目描述 }$ hsezoi 巨佬 olinr 喜欢 van 毛毛虫,他定义毛毛虫是一棵树,满足树上存在一条树链,使得树上所有点到这条树链的距离最多为 1. 给定 ...

  8. HihoCoder - 1513 bitset处理五维偏序

    题意:给出\(n<3e4\)个有序组\((a,b,c,d,e)\),求对第\(i\)个有序组有多少个\(j\)满足\((a_j<a_i,b_j<b_i,c_j<c_i,d_j& ...

  9. 更改Android编译软件版本(make/gcc/bision)

    一.make版本 1.下载make的压缩包 ftp://ftp.gnu.org/gnu/make/ 2.解压,安装 cd make-x.x ./configuration sh build.sh su ...

  10. CAS总结

    n++的问题不能保证原子操作. 因为被编译后拆分成了3个指令,先获取值,然后加一,然后写回内存.把变量声明为volatile,volatile只能保证内存可见性,但是不能保证原子性,在多线程并发下,无 ...