实际项目当中用到的案例,个人笔记。

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剪切数据的更多相关文章

  1. AngularJS SQL 获取数据

    使用PHP从MySQL中获取数据: <!DOCTYPE html> <html> <head> <meta charset="utf-8" ...

  2. Visual Basic 2012 借助DataGridView控件将SQL server2012 数据导入到Excel 2010

    摘  要: SQL Server 2012 数据和Excel 2010之间的连接和数据的传输,本篇文章主要针对的是SQL Server 2012 数据导入到Excel 2010文件中.Excel软件对 ...

  3. SQL server数据缓存依赖

    SQL server数据缓存依赖有两种实现模式,轮询模式,通知模式. 1  轮询模式实现步骤 此模式需要SQL SERVER 7.0/2000/2005版本以上版本都支持        主要包含以下几 ...

  4. sql复制数据表和表结构

    SQL复制数据表 (select * into 与 insert into) select * into 目标表名 from 源表名 insert into 目标表名(fld1, fld2) sele ...

  5. [SQL]SQL删除数据的各种方式总结

    SQL删除数据的各种方式总结 一.使用DELETE从表中删除目标行.记录每次删除操作.如: USE pubs DELETE FROM authors WHERE au_lname = 'McBadde ...

  6. [SQL]SQL Server数据表的基础知识与增查删改

    SQL Server数据表的基础知识与增查删改 由张晨辉(学生) 于19天 前发表 | 阅读94次 一.常用数据类型 .整型:bigint.int.smallint.tinyint .小数:decim ...

  7. Sql Server数据的加密与解密

    Sql Server数据的加密与解密 在sql server中,我们如何为数据进行加密与解密,避免使用者窃取机密数据? 对于一些敏感数据,如密码.卡号,一般不能使用正常数值来存储.否则会有安全隐患.以 ...

  8. delphi 2010 导出sql server 数据到DBF乱码问题

    近日,由于业务需要导出sql server 数据到DBF文件,要查询多表记录,并适当处理后生成导出DBF文件,系统使用delphi2010平台开发. 首先按要求在VFP里创建DBF表,字段数有240个 ...

  9. 20150221—LINQ to SQL 查询数据

    LINQ to SQL 可以快捷的查询基于SQL的数据,直接在VS中包括基本的Object/relation映射器,O/R映射器可以快速的将基于SQL的数据源映射为CLR对象,之后就可以使用LINQ查 ...

随机推荐

  1. MyBatis 3在Insert之后返回主键

    XML: <insert id="addUser" parameterType="User" useGeneratedKeys="true&qu ...

  2. Mycat集群方案收集(待实践)

    先收集,后续再实践. 我想,市面上开源方案中,涉及到高可用和负载均衡的部署,无论是哪一个产品应用,都基本离不开LVS+Keepalived+HAProxy+Nginx等等. 下面是收集的教程: htt ...

  3. sdfs

    <!DOCTYPE html><html><head><meta charset="GB18030"><title>In ...

  4. 使用Tornado实现http代理

    0x00 http代理 http代理的用处非常多,市面上也有公开的代理,可是有时候为了工作须要,比方分析应用层流量.做数据訪问控制.甚至做监控等等.Tornado提供了一些非常方便的环境和API,我们 ...

  5. css 實現微信聊天類似的氣泡

    要實現這樣的效果 代碼如下: --------------------------------------- <style> .test{width:300px; padding:30px ...

  6. hadoop的linux配置

    一.新建hadoop组跟用户(password:hadoop) [root@localhost home]# groupadd hadoop [root@localhost home]# userad ...

  7. 一张图搞定OAuth2.0 在Office应用中打开WPF窗体并且让子窗体显示在Office应用上 彻底关闭Excle进程的几个方法 (七)Net Core项目使用Controller之二

    一张图搞定OAuth2.0   目录 1.引言 2.OAuth2.0是什么 3.OAuth2.0怎么写 回到顶部 1.引言 本篇文章是介绍OAuth2.0中最经典最常用的一种授权模式:授权码模式 非常 ...

  8. 一起talk C栗子吧(第七回:C语言实例--进制转换)

    各位看官们.大家好,从今天開始.我们讲大型章回体科技小说 :C栗子,也就是C语言实例. 闲话休提, 言归正转.让我们一起talk C栗子吧! 看官们.上一回中咱们说的是生成随机数的样例.这一回咱们说的 ...

  9. Deferred Rendering(二)G-Buffer的组织

    先来看一张网上广为流传的<杀戮地带2>典型的Deferred Shading的G-Buffer组织: 这里补充解释下几个点: 不存Position,而由depth和屏幕像素坐标反推出来.參 ...

  10. 2016/1/14 java生成指定范围的随机数

    java生成指定范围的随机数 package edu.sjtu.erplab.io; import java.util.Random; public class RandomTest { public ...