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. HttpHandler与HttpModule及实现文件下载

    HttpHandler:处理请求(Request)的信息和发送响应(Response).HttpModule:通过Http Module向Http请求输出流中写入文字,httpmodule先执行 它们 ...

  2. linux扩展lvm磁盘

    env: centos 6.5 x64 hyper-v虚拟机 这个方法可以在当前运行的系统中扩展root磁盘 详细步骤 之前想创建的一个虚拟机的磁盘空间不够用了,所以想扩容一下磁盘. 正好使用的时候是 ...

  3. C# 给picturebox添加滚动条

    在一个项目中需要给picturebox增加滚动条,我先前的做法和网上一样,将picturebox放在一个panel上,将panel的AutoScroll设置为ture,将picturebox的Size ...

  4. Java调用.Net WebService参数为空解决办法 (远程)调试webservice方法 转

    Java调用.Net WebService参数为空解决办法 (远程)调试webservice方法   同事遇到一个很囧的问题,java调,netwebservice的时候,调用无参数方法成功,调用有参 ...

  5. js 作为属性的变量

    当声明一个javascript全局变量时,实际上是定义了全局对象的一个属性. 当使用var声明一个变量时,创建的这个属性是不可配置的,也就是说这个变量无法通过delete运算符来删除.可能你已经注意到 ...

  6. Mysql锁机制和事务控制

    如何加锁 锁定表的语法:    LOCK TABLES    tbl_name [AS alias] {READ [LOCAL] | [LOW_PRIORITY] WRITE}    [, tbl_n ...

  7. 定时生成bat命令

    windows下,定时生成bat的名. at 14:54 cmd /c "echo net share D=d:\ > d:d.bat" ^对>转义.

  8. 由 OR 引起的死循环

    在客商迁移测试时,程序一旦开始执行就不能自动停止.只能通过手动中断应用服务器的进程来停止.检查迁移的一个表,这个表迁移前没有数据,迁移最多会插入3w条左右数据,但是迁移过程执行2个多小时候再看,已经有 ...

  9. 补充一下我对 POJ 3273 的理解,这肯定是我一生写的最多的题解。。。

    题目:http://poj.org/problem?id=3273 当分成的组数越多,所有组的最大值就会越小或不变,这一点不难证明:    如果当前分成了group组,最大值是max,那么max的这一 ...

  10. 设置UIButton的文字居右显示 去掉点击默认置灰效果

    1.设置UIButton的文字居右显示 [button setContentHorizontalAlignment:UIControlContentHorizontalAlignmentRight]; ...