USE [POND]
GO
/****** Object: StoredProcedure [dbo].[OrderChargeList] Script Date: 04/16/2014 13:32:53 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO CREATE PROCEDURE [dbo].[OrderChargeList]
AS
DECLARE @dateDiffValue int,
@cnt int
BEGIN
SET NOCOUNT ON; SELECT @dateDiffValue= DATEDIFF(WEEK,isnull((SELECT TOP 1 CONVERT(VARCHAR(10),EnteredDate,121) FROM dbo.LGTobeOrder_CCBatch),'2000-01-01'),GETDATE()) --SELECT @cnt= COUNT(*) FROM dbo.LGTobeOrder_CCBatch
--SELECT * FROM LGOrder
--where customerid is not null and orderid is not null
--select * from dbo.LGTobeOrder_CCBatch --delete FROM LGOrder where customerid not in(17,19,1) --IF(@cnt<0)
--BEGIN
-- INSERT INTO dbo.LGTobeOrder_CCBatch(CustomerID,orderID,FirstName,LastName,recordCount,perRecordCost,ccAmount,EMail)
-- SELECT a.customerid,a.orderid,b.firstName,b.lastName, dbo.[GetCustomerDataCount](a.orderid),0.65,6.5,b.EmailAddress FROM LGOrder a inner join LGCustomerBilling b
-- ON a.customerid =b.customerid -- SELECT * FROM dbo.LGTobeOrder_CCBatch WHERE ccProcStatus != 'DONE'
-- RETURN
--END --IF(@dateDiffValue<7 AND @dateDiffValue>=0)
IF(@dateDiffValue>7)
BEGIN
/*print 'a'*/
--SELECT * FROM dbo.LGTobeOrder_CCBatch WHERE ccProcStatus != 'DONE'
truncate table dbo.LGTobeOrder_CCBatch INSERT INTO dbo.LGTobeOrder_CCBatch(CustomerID,orderID,FirstName,LastName,recordCount,perRecordCost,ccAmount,EMail)
SELECT a.customerid,a.orderid,b.firstName,b.lastName, dbo.[GetCustomerDataCount](a.orderid) as 'recordCount',0.65,dbo.[GetCustomerDataCount](a.orderid)*0.65,b.EmailAddress FROM LGOrder a inner join LGCustomerBilling b
ON a.customerid =b.customerid
END SELECT * FROM dbo.LGTobeOrder_CCBatch WHERE isnull(ccProcStatus,'') != 'DONE' --select top 10 * from dbo.LGOrder
--select top 10 * from dbo.LGOrderZips
--SELECT top 10 [ZipFrom],[ZipTo],[Radius] FROM [POND].[dbo].[zipcode_radius_around]
--where zipfrom =12601 and radius<=10
--1 准备数据
SET NOCOUNT OFF
END
USE [POND]
GO
/****** Object: StoredProcedure [dbo].[PROC_LGGetCustomerDataForRequest] Script Date: 04/16/2014 11:28:42 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[PROC_LGGetCustomerDataForRequest] /*Variable*/
@OrderId varchar(10)
AS
declare @DataSource varchar(10),
@PropertyType varchar(10),/*For dbo.PostMover specially*/
@PriceRange int, /*For dbo.premover specially*/
@Radius varchar(10)
select @PriceRange=PriceRange,@PropertyType=PropertyType,@Radius=radius from dbo.LGOrder where orderid=@OrderId
/*
Summary:根据提供的OrderId,DataSource,PropertyType,Zips,Radius来获取符合指定条件的客户数据。
*/
BEGIN IF @DataSource IS NOT NULL AND @DataSource = 'premover'
BEGIN SELECT * INTO dbo.LGPremoverDataCampaignHistory_Backup FROM dbo.LGPremoverDataCampaignHistory truncate table dbo.LGPremoverDataCampaignHistory INSERT INTO dbo.LGPremoverDataCampaignHistory
( OrderId ,idkey2,zip ,state,city,address,idkey,addtype,plus4,scrapedt,dpb,price ,
buy_flag , date,AddDate)
SELECT @OrderId AS OrderId,[idkey2],[zip],[state]
,[city],[address],[idkey],[addtype],[plus4],[scrapedt]
,[dpb],[price],[buy_flag],[date],GETDATE() AS AddDate
from dbo.premover
where zip in((SELECT b.zipto
from dbo.LGOrderZips a left JOIN dbo.zipcode_radius_around b
ON a.codes=b.zipfrom
where orderid=@OrderId AND b.Radius<= @Radius
AND b.ZipFrom is NOT NULL AND b.zipto is NOT NULL
AND b.ZipTo NOT IN(SELECT codes FROM dbo.LGOrderZips where orderid=@OrderId )
GROUP BY ZipTo)
UNION (SELECT codes FROM dbo.LGOrderZips where orderid=@OrderId))
AND price <=@PriceRange
END ELSE IF @DataSource IS NOT NULL AND @DataSource = 'postmover'
BEGIN SELECT * INTO dbo.LGPostMoveWeeklyDataCampaignHistory_Backup FROM [dbo].[LGPostMoveWeeklyDataCampaignHistory] truncate table dbo.LGPostMoveWeeklyDataCampaignHistory INSERT INTO [POND].[dbo].[LGPostMoveWeeklyDataCampaignHistory]
([OrderId],[fname],[lname],[zip],[plus4],[address],[city],[state],[pub_dt],[seg_nbr]
,[fullname],[dpbc],[addtype],[dwell_typ],[AddDate])
SELECT @OrderId AS OrderId,[fname],[lname],[zip],[plus4],[address],[city],[state],[first_pub_dt],[seg_nbr]
,[fullname],[dpbc],[addtype],[dwell_typ],GETDATE() AS AddDate
from postmover
where zip in((SELECT b.zipto
from dbo.LGOrderZips a left JOIN dbo.zipcode_radius_around b
ON a.codes=b.zipfrom
where orderid=@OrderId AND b.Radius<= @Radius
AND b.ZipFrom is NOT NULL AND b.zipto is NOT NULL
AND b.ZipTo NOT IN(SELECT codes FROM dbo.LGOrderZips where orderid=@OrderId )
GROUP BY ZipTo)
UNION (SELECT codes FROM dbo.LGOrderZips where orderid=@OrderId))
AND dwell_typ=@PropertyType
END ELSE IF @DataSource IS NOT NULL AND @DataSource = 'both'
BEGIN SELECT * INTO dbo.LGPremoverDataCampaignHistory_Backup FROM dbo.LGPremoverDataCampaignHistory truncate table dbo.LGPremoverDataCampaignHistory INSERT INTO dbo.LGPremoverDataCampaignHistory
( OrderId ,idkey2,zip ,state,city,address,idkey,addtype,plus4,scrapedt,dpb,price ,
buy_flag , date,AddDate)
SELECT @OrderId AS OrderId,[idkey2],[zip],[state]
,[city],[address],[idkey],[addtype],[plus4],[scrapedt]
,[dpb],[price],[buy_flag],[date],GETDATE() AS AddDate
from dbo.premover
where zip in((SELECT b.zipto
from dbo.LGOrderZips a left JOIN dbo.zipcode_radius_around b
ON a.codes=b.zipfrom
where orderid=@OrderId AND b.Radius<= @Radius
AND b.ZipFrom is NOT NULL AND b.zipto is NOT NULL
AND b.ZipTo NOT IN(SELECT codes FROM dbo.LGOrderZips where orderid=@OrderId )
GROUP BY ZipTo)
UNION (SELECT codes FROM dbo.LGOrderZips where orderid=@OrderId))
AND price <=@PriceRange SELECT * INTO dbo.LGPostMoveWeeklyDataCampaignHistory_Backup FROM [dbo].[LGPostMoveWeeklyDataCampaignHistory] truncate table dbo.LGPostMoveWeeklyDataCampaignHistory INSERT INTO [POND].[dbo].[LGPostMoveWeeklyDataCampaignHistory]
([OrderId],[fname],[lname],[zip],[plus4],[address],[city],[state],[pub_dt],[seg_nbr]
,[fullname],[dpbc],[addtype],[dwell_typ],[AddDate])
SELECT @OrderId AS OrderId,[fname],[lname],[zip],[plus4],[address],[city],[state],[first_pub_dt],[seg_nbr]
,[fullname],[dpbc],[addtype],[dwell_typ],GETDATE() AS AddDate
from postmover
where zip in((SELECT b.zipto
from dbo.LGOrderZips a left JOIN dbo.zipcode_radius_around b
ON a.codes=b.zipfrom
where orderid=@OrderId AND b.Radius<= @Radius
AND b.ZipFrom is NOT NULL AND b.zipto is NOT NULL
AND b.ZipTo NOT IN(SELECT codes FROM dbo.LGOrderZips where orderid=@OrderId )
GROUP BY ZipTo)
UNION (SELECT codes FROM dbo.LGOrderZips where orderid=@OrderId))
AND dwell_typ=@PropertyType
END END

1.若在创建存储过程中,发现某行报错。

如:某行处的END出错。(导致我郁闷了很久!)

这就说明BEGIN与END之间的代码块中有没有检查出的错误,而你需要做的就是找出错误并修改。

2.在存储过程内部定义参数变量之后,如果在代码块中有可能无法为其赋值,则在BEGIN之后为其手动赋初值,否则在该参数变量在存储过程执行完毕后为NULL。

3.如果在存储过程执行完毕后,没有得到预期的数据或值,则对代码块中的关键代码进行手动调试(print,select);如果手动调试变量没有问题就检查前面的条件性的语句进行检查是否有条件遗漏。

4.数据库端的程序编写可以进行面向对象思想的包装,如果发现某一系列相同的操作过多,则对代码进行重构,封装(例如增加自定义函数等)。

5.在ViewCode1中:truncate table dbo.LGPremoverDataCampaignHistory 将该表进行快速删除。详情:使用 TRUNCATE TABLE 删除所有行

6.在ViewCode2中:SELECT @dateDiffValue= DATEDIFF(WEEK,(SELECT TOP 1 CONVERT(VARCHAR(10),EnteredDate,121) FROM dbo.LGTobeOrder_CCBatch),GETDATE()) ,本例计算是否在本周内。经测试上周日到本周六在同一个星期内,此应为美国周标准,测试说明:若值为1则说明两个日期相差一周且startdate在当前日期enddate的上一周;当值为0则说明两个日期在同一周内;当值为-1则说明两个日期相差一周且startdate在当前日期enddate的下一周。

详情:DATEDIFF (Transact-SQL)

个人体会:

1.一定要把数据库的语法掌握熟练,就像做编程一样,只有熟练掌握了基本的语法,再复杂的业务逻辑或技术难题都能一点一点地解决。

2.学习技术可以先应用,但如果想学精并与其他的技术相通,就一定要学习其原理。(本人菜鸟一枚,在此建议各位像我一样的菜鸟)

存储过程实例总结(开发中的错误与总结,调试,数据库函数DATEDIFF计算当前日期是否在本周内)的更多相关文章

  1. EBS OAF开发中的错误/异常处理(ErrorHandling) (转)

    原文地址 EBS OAF开发中的错误/异常处理(ErrorHandling) EBS OAF开发中的错误/异常处理(ErrorHandling) (版权声明,本人原创或者翻译的文章如需转载,如转载用于 ...

  2. ios开发——错误总结篇&开发中常见错误和警告总结(四)

    ios开发——开发总结&开发中常见错误和警告总结(四) 网易彩票实战总结(错误) 错误总结之类的实现 经典错误之重复定义与导入错误 经典错误关于父类的实现 通知对象: 控制器的定义 Xcode ...

  3. Python基础教程(011)--程序开发中的错误及原因

    前言 排查代码开发中的错误 内容 1,编写的程序不能正常执行,或者执行的结果不是我们期望的 2,俗称bug,是程序开发常见的,初学常见的原因有 手误 对已经学习的知识点理解不足 对语音还有需要学习和提 ...

  4. iOS开发中视图控制器ViewControllers之间的数据传递

    iOS开发中视图控制器ViewControllers之间的数据传递 这里我们用一个demo来说明ios是如何在视图控制器之间传递重要的参数的.本文先从手写UI来讨论,在下一篇文章中讨论在storybo ...

  5. 浅谈开发中python通过os模块存储数据

    #其实本人很烦发博客,但为了面试还是发一下好,证明一下自己的能力 前言 首先说一下适用环境,在开发中我们有一些经常用到的数据(数据量大)需要存储起来. 存sql嘛又不合适,要知道在开发中每条sql语句 ...

  6. iOS开发中的错误整理,IOS9中canOpenURL调用失败分析

    由于IOS加入对用户隐私以及禁止扫描系统信息的控制,目前通过canOpenURL的方法来判断用户是否安装特定app,则会出现-canOpenURL: failed for URL: "ABC ...

  7. iOS开发中的错误整理,通过storyboard做项目,遇到view看不见,或者view被压缩的情况

    前言:在网易新闻的练习中遇到了这个错误 注意:练习中遇到了如图的bug,主要是因为用storyboard布局 600 * 600   显示的时候要经过自动布局,缩小到相应手机的屏幕大小.也就是有的尺寸 ...

  8. spring开发中常见错误集合,逐步添加

    1.关于jstl错误:原因,在jsp页面中使用了jstl标签库,但是却没有导入,可以将相应的jar包放在tomcat的lib目录下,一劳永逸 Java.lang.NoClassDefFoundErro ...

  9. iOS开发中的错误整理,Changing the delegate of a tab bar managed by a tab bar controller is not allowed

    iOS [错误:'Changing the delegate of a tab bar managed by a tab bar controller is not allowed.'] 错误:'Ch ...

随机推荐

  1. hibernate符合主键

    当有符合主键时,一方与多方的复合主键顺序必须一致: <set> <key> <column name="A" /> <column nam ...

  2. linux进程间通信--有名管道

    有名管道 只有当一个库函数失败时,errno才会被设置.当函数成功运行时,errno的值不会被修改.这意味着我们不能通过测试errno的值来判断是否有错误存在.反之,只有当被调用的函数提示有错误发生时 ...

  3. Omnithreadlibary学习(1)-异步执行

    program main; {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils, OtlParallel; begin Parallel.Async( ...

  4. xcopy总是询问是文件名还是目录名

    我需要运行类似xcopy /y a.xml .\pics\b.xml很多次,但xcopy总是问我“文件名还是目录名” 可以这样通过管道来做echo f | xcopy /y a.xml .\pics\ ...

  5. Java String.contains()方法(转载)

    Java String.contains()方法 Java String.contains()方法用法实例教程, 返回true,当且仅当此字符串包含指定的char值序列 描述 java.lang.St ...

  6. IP,TCP,UDP Checksum校验

    IP数据报的校验: IP数据报只需要对数据头进行校验,步骤如下: 将接收到的数据的checksum字段设置为0 把需要校验的字段的所有位划分为16位(2字节)的字 把所有16位的字相加,如果遇到进位, ...

  7. ZOJ 2562 More Divisors

    又是个水题,刚刚开始没有用搜索,因为对于反素数有: n=2^t1*3^t2^5^t3*7^t4..... 这里有 t1>=t2>=t3>=t4. 而且相同的因数的情况下,素数越不同越 ...

  8. hdu 1875

    题目很简单,我却WA了几十次,找错误找了我一个小时: 蛋都碎了! 后来发现错误的地方竟然是memset: 用一个循环来替代它就A了:╮(╯▽╰)╭ 今晚回去好好的看看memset!!! 发个代码纪念下 ...

  9. [python]用profile协助程序性能优化

    转自:http://blog.csdn.net/gzlaiyonghao/article/details/1483728 本文最初发表于恋花蝶的博客http://blog.csdn.net/lanph ...

  10. 让你的短信应用迎接Android 4.4(KitKat)

    原文地址:Getting Your SMS Apps Ready for KitKat 发送和接收短信是手机最基本的功能,很多的开发者也开发了很多成功的应用来增强Android这一方面的体验.你们当中 ...