sql剪切数据
实际项目当中用到的案例,个人笔记。
USE [CA-SM]
GO
/****** Object: StoredProcedure [dbo].[PG_SM_AddSum] Script Date: 07/08/2013 18:56:43 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--CREATE PROCEDURE [dbo].[pg_AddOtherFee]
ALTER PROCEDURE [dbo].[PG_SM_AddSum]
@i_SBID int,
@i_MAID int,
@sz_CDate varchar(23)
AS
DECLARE
@iRetVal int,
@iSSID int,
@iNSettleDATE int
SET @iNSettleDATE = CONVERT(varchar(100), GETDATE(), 112)
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[#TT]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[#TT]
SELECT MAID, Rname, TotSCnt, TotMFee, SAmt, TotSAmt, BPFee, BName, BAccName, BAccNo, TotWHRAmt, TotWHAmt, TotRAmt, (FeeAmt - BPFee) AS TotAAmt, (MNAmt + TotWHRAmt - TotRAmt - (FeeAmt - BPFee)) AS TotNAmt
INTO #TT FROM (SELECT MA.MAID, MA.Rname,
(SELECT COUNT(PKID) FROM PG_SMP_Txn WHERE MAID = MA.MAID AND TxnDay IN (
SELECT TxnDay FROM PG_SMP_TxnSum TS
WHERE TS.MAID = MA.MAID AND TS.SettleFlag = 3 AND TS.SettleDay <= @iNSettleDATE)) AS TotSCnt,
(SELECT SUM(MDA) FROM PG_SMP_Txn WHERE MAID = MA.MAID AND TxnDay IN (
SELECT TxnDay FROM PG_SMP_TxnSum TS
WHERE TS.MAID = MA.MAID AND TS.SettleFlag = 3 AND TS.SettleDay <= @iNSettleDATE)) AS TotMFee,
SUM(TS.SAmt) AS SAmt, SUM(TS.SAmt) AS TotSAmt, SUM(TS.MNAmt) AS MNAmt,
(SELECT ISNULL(MAX(FeeAmt), '0.00') FROM PG_SM_MerchAdjTxn WHERE MAID = MA.MAID AND FeeID = 1 AND SettleFlag = 3 AND SettleDay <= @iNSettleDATE) BPFee,
(SELECT BankName FROM [CA-PG]..MM_MerchFinAcc WHERE MAID = MA.MAID) AS BName,
(SELECT BankAccName FROM [CA-PG]..MM_MerchFinAcc WHERE MAID = MA.MAID) AS BAccName,
(SELECT BankAccNo FROM [CA-PG]..MM_MerchFinAcc WHERE MAID = MA.MAID) AS BAccNo,
(SELECT ISNULL(SUM(WS1.WHAmt), '0.00') FROM dbo.PG_SMP_WHTxnSum WS1 WHERE WS1.MAID = MA.MAID AND SettleFlag = 3 AND CONVERT(varchar(100), DATEADD(mm, DATEDIFF(mm,0,CAST(CONVERT(varchar(8),WS1.SettleDay)as datetime))+1, 0), 112) <= CONVERT(int, @iNSettleDATE)) TotWHRAmt,
(SELECT ISNULL(SUM(WS2.WHAmt), '0.00') FROM dbo.PG_SMP_WHTxnSum WS2 WHERE WS2.MAID = MA.MAID AND SettleFlag IN (2, 3)) - (SELECT ISNULL(SUM(WS1.WHAmt), '0.00') FROM dbo.PG_SMP_WHTxnSum WS1 WHERE WS1.MAID = MA.MAID AND SettleFlag = 3 AND CONVERT(varchar(100), DATEADD(mm, DATEDIFF(mm,0,CAST(CONVERT(varchar(8),SettleDay)as datetime))+1, 0), 112) <= CONVERT(int, @iNSettleDATE)) TotWHAmt,
(SELECT ISNULL(SUM(RAmt), '0.00') FROM dbo.PG_SMP_RefundTxn WHERE MAID = MA.MAID AND SettleDay <= @iNSettleDATE AND SettleFlag = 3) TotRAmt,
(SELECT ISNULL(SUM(FeeAmt), '0.00') FROM dbo.PG_SM_MerchAdjTxn WHERE MAID = MA.MAID AND SettleDay <= @iNSettleDATE AND SettleFlag = 3) AS FeeAmt
FROM [CA-PG]..MM_MerchAcc MA
LEFT JOIN dbo.PG_SMP_TxnSum TS ON MA.MAID = TS.MAID
LEFT JOIN [CA-PG]..MM_MerchFinAcc MF ON MA.MAID = MF.MAID
LEFT JOIN [CA-PG]..MM_BillingProf BP ON MF.BProf = BP.BMPID
WHERE TS.SettleFlag IN (2, 3) AND TS.SettleDay <= CONVERT(int, @iNSettleDATE) AND MA.MAID = @i_MAID
GROUP BY MA.MAID, MA.Rname, BP.SettleDay, TS.SettleFlag) A
INSERT INTO [dbo].[PG_SM_Sum]
(SBID, MAID, TotSCnt, TotSAmt, TotMFee, TotWHAmt, TotWHRAmt, TotRAmt, TotAAmt, BPFee, TotNAmt, BName, BAccNo, BAccName, CDate)
SELECT
@i_SBID, MAID, TotSCnt, TotSAmt, TotMFee, TotWHAmt, TotWHRAmt, TotRAmt, TotAAmt, BPFee, TotNAmt, BName, BAccNo, BAccName, @sz_CDate FROM #TT
WHERE MAID = @i_MAID AND (SELECT COUNT(1) FROM [dbo].[PG_SM_Sum] WHERE SBID = @i_SBID AND MAID = #TT.MAID) = 0
SET @iRetVal = 0
CleanUp:
DROP TABLE #TT
SELECT @iRetVal RetVal, @iSSID SSID
sql剪切数据的更多相关文章
- AngularJS SQL 获取数据
使用PHP从MySQL中获取数据: <!DOCTYPE html> <html> <head> <meta charset="utf-8" ...
- Visual Basic 2012 借助DataGridView控件将SQL server2012 数据导入到Excel 2010
摘 要: SQL Server 2012 数据和Excel 2010之间的连接和数据的传输,本篇文章主要针对的是SQL Server 2012 数据导入到Excel 2010文件中.Excel软件对 ...
- SQL server数据缓存依赖
SQL server数据缓存依赖有两种实现模式,轮询模式,通知模式. 1 轮询模式实现步骤 此模式需要SQL SERVER 7.0/2000/2005版本以上版本都支持 主要包含以下几 ...
- sql复制数据表和表结构
SQL复制数据表 (select * into 与 insert into) select * into 目标表名 from 源表名 insert into 目标表名(fld1, fld2) sele ...
- [SQL]SQL删除数据的各种方式总结
SQL删除数据的各种方式总结 一.使用DELETE从表中删除目标行.记录每次删除操作.如: USE pubs DELETE FROM authors WHERE au_lname = 'McBadde ...
- [SQL]SQL Server数据表的基础知识与增查删改
SQL Server数据表的基础知识与增查删改 由张晨辉(学生) 于19天 前发表 | 阅读94次 一.常用数据类型 .整型:bigint.int.smallint.tinyint .小数:decim ...
- Sql Server数据的加密与解密
Sql Server数据的加密与解密 在sql server中,我们如何为数据进行加密与解密,避免使用者窃取机密数据? 对于一些敏感数据,如密码.卡号,一般不能使用正常数值来存储.否则会有安全隐患.以 ...
- delphi 2010 导出sql server 数据到DBF乱码问题
近日,由于业务需要导出sql server 数据到DBF文件,要查询多表记录,并适当处理后生成导出DBF文件,系统使用delphi2010平台开发. 首先按要求在VFP里创建DBF表,字段数有240个 ...
- 20150221—LINQ to SQL 查询数据
LINQ to SQL 可以快捷的查询基于SQL的数据,直接在VS中包括基本的Object/relation映射器,O/R映射器可以快速的将基于SQL的数据源映射为CLR对象,之后就可以使用LINQ查 ...
随机推荐
- jmeter的Classpath即类或者jar包的搜索路径设置
对于master-slave模式,插件和依赖都需要放到slave上才能生效,并且需要重启slave使插件生效 查看配置文件:apache-jmeter-3.1/bin/jmeter.propertie ...
- git的配置文件
转载:https://cnbin.github.io/blog/2015/06/19/git-config-ming-ling-cha-kan-pei-zhi-wen-jian/ Git Config ...
- 003 rip
r0#config t Enter configuration commands, one per line. End with CNTL/Z. r0(config)#router rip r0(c ...
- i18n国际化的例子
这个可以点击菜单进行中英文切换,每次切换就可以改变sessionStorage.languge,进行改变i18n的参数lang的值,然后重新调用下就可以了. 工程结构: i18n--| |---css ...
- 中国第二代身份证验证js代码
以下这部分代码截取自盛大的某个网页.详细我就不给url了.以下是相应的js代码: iW = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1); iSum ...
- 利用runtime检測这个对象是否存在某属性?
假定有实例对象-instance,我们怎样知道该实例对象是否存在属性-propertyName? 利用runtime,我们能够获取到它的属性列表 1)属性列表 unsigned int outCoun ...
- linux启动基本流程
linux启动序列 1.CPU初始化 CPU自身初始化.从某个固定位置(0xfffffff0)取指令并运行,该指令为跳转指令.跳转到BIOS代码的首部. 2.装载BIOS BIOS被固化在 ...
- c# 钩子
1.setWindowsHookex详解 http://blog.csdn.net/mmllkkjj/article/details/6627188 函数功能:该函数将一个应用程序定义的挂钩处理过程安 ...
- linux select poll and epoll
这里以socket文件来阐述它们之间的区别,假设现在服务器端有100 000个连接,即已经创建了100 000个socket. 1 select和poll 在我们的线程中,我们会弄一个死循环,在循环里 ...
- 【转载】limits.h
limits.h专门用于检测整型数据数据类型的表达值范围. <limits.h>主要提供对整型和字符型范围的限制的宏,同样没有指定类型和函数的定义. 1.整型宏如下表: 2.字符型宏如下表 ...