`
jgsj
  • 浏览: 963820 次
文章分类
社区版块
存档分类
最新评论

科力德一卡通系统查询SQL重写

 
阅读更多

公司一直用的是科力德的一卡通系统,由于数据越来越大,直接用科力德一卡通系统客户端查询数据异常慢,查一周的数据4774笔消费明细数据,需要1分30秒,查询一个月的不知道要多久(一直忙的状态),业务部门每月都要用消费数据做汇总,必须查询出来做汇总分析,如是经分析,了解了一卡通系统的数据结构,查询效率快得多,查一个月的数据3万多笔,也才3秒钟,现将查询代码分享给使用该系统的朋友们!

/***********************************************************
* Procedure description:查询消费明细
* Date:   2013-5-30 
* Author: 
*
* Changes
* Date		Modified By			Comments
************************************************************
exec Prg_FindXFData '20130501','20130530'
************************************************************/
Alter PROCEDURE dbo.Prg_FindXFData
(
	@XFBegindate varchar(8),--消费开始日期
    @XFEndDate varchar(8)  ,--消费结束日期
	@DevID tinyint=null,	--机号
	@MealType tinyint=null,		--餐类:1=早餐,2=中餐,3=晚餐
	@PersonCode varchar(20)=null,--卡编号
    @CardID int=null,			--卡流水号
    @CardType tinyint=null,		--卡类    
    @XFMoney   float=Null	   --
)
AS
set NOCOUNT ON
declare @sqlstr nvarchar(max),@wherestr nvarchar(4000)
set @wherestr=''
if @DevID is not null
   set @wherestr=@wherestr+' And C.DevID'+CAST(@DevID AS varchar(10))
if @MealType is not NULL
   set @wherestr=@wherestr+' And C.MealTypeID='+cast(@MealType as varchar(10))
if isnull(@PersonCode,'')<>''
   set @wherestr=@wherestr+' And D.EmpNo='''+@PersonCode+''''
if @CardID is not NULL
   set @wherestr=@wherestr+' And C.CardID='+@CardID
if @CardType is not NULL
   set @wherestr=@wherestr+' And C.CardTypeID'+@CardType
set @sqlstr='select C.DevID,c.XFPosDay,c.MealTypeID,E.MealTypeName,c.CardID,D.EmpNo,D.EmpName,c.CardTypeID,
			b.OMoneyValue,b.CardMoneyValue,b.CardUseNum,c.XFPosDate
           From XF_AccHead A inner join XF_AccTransDetail B on A.AccNo=B.AccNo
				             INNER JOIN XF_XFData c ON b.XFDataSysID=c.XFDataSysID
							 INNER JOIN RS_Emp D on A.EmpSysID=D.EmpSysID 
							 inner join XF_MealType E on C.MealTypeID=E.MealTypeID
				where C.XFPosDay>='''+convert(varchar(8),@XFBegindate,112)
				+''' And C.XFPosDay<'''+convert(varchar(8),dateadd(day,1,@XFEndDate),112)+''''+@wherestr
				+' order by C.CardID,C.XFPosDay'
exec (@sqlstr)					 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics