笔记148 的search存储过程 like语句
1 --的search存储过程 like语句
2 USE [GPOSDB]
3 GO
4 /****** 对象: StoredProcedure [dbo].[CT_Append_Search] 脚本日期: 02/04/2012 23:41:24 ******/
5 SET ANSI_NULLS ON
6 GO
7 SET QUOTED_IDENTIFIER ON
8 GO
9 -----------------------------------------------------------------
10 -- Name: CT_Append Store Procedure
11 -- Author:
12 -- DateTime: 2011-07-22
13 -- Description: Data TableCT_Append , Get List
14 -----------------------------------------------------------------
15 /*
16 @PageIndex
17 @TotalRecords
18 */
19 ALTER PROCEDURE [dbo].[CT_Append_Search]
20 (
21 @VC_A_SNNO varchar(50),
22 @VC_OC_UserName varchar(50),
23 @VC_OC_Company varchar(50),
24 @VC_A_CardNO varchar(50),
25 @CardType int,
26 @VC_A_AppendType varchar(50),
27 @VC_TicketType varchar(50),
28 @VC_TicketNO varchar(50),
29 @StartDate varchar(50),
30 @EndDate varchar(50),
31 @PageIndex int,
32 @TotalRecords int
33 )
34 AS
35 BEGIN
36 DECLARE @Page int
37 DECLARE @PageLowerBound int
38 DECLARE @PageUpperBound int
39 DECLARE @RowsToReturn int
40
41 SET @Page = (@PageIndex - 1)
42
43 -- First set the rowcount
44 SET @RowsToReturn = @TotalRecords * (@Page + 1)
45 SET ROWCOUNT @RowsToReturn
46
47 -- Set the page bounds
48 SET @PageLowerBound = @TotalRecords * @Page
49 SET @PageUpperBound = @PageLowerBound + @TotalRecords + 1
50
51 -- Create a temp table to store the select results
52 CREATE TABLE #PageIndex
53 (
54 IndexId int IDENTITY (1, 1) NOT NULL,
55 VC_A_SNNO varchar(50)
56 )
57 Declare @ConSQL varchar(2000)
58 Declare @StrSQL varchar(2000)
59 set @StrSQL='INSERT INTO #PageIndex (VC_A_SNNO) SELECT [VC_A_SNNO] FROM [CT_Append] a LEFT OUTER JOIN
60 CT_OuterCard b ON a.VC_A_CardNO = b.VC_OC_CardNO LEFT OUTER JOIN
61 CT_InhouseCard c ON a.VC_A_CardNO = c.VC_IC_CardNO where a.RecordNO<>0'
62 set @ConSQL=''
63 if(@VC_A_SNNO<>'')
64 begin
65 set @ConSQL=@ConSQL + ' and a.VC_A_SNNO like ''%' + @VC_A_SNNO +'%'''
66 end
67 if(@VC_OC_UserName<>'')
68 begin
69 set @ConSQL=@ConSQL + ' and b.VC_OC_UserName like ''%' + @VC_OC_UserName+'%'''
70 end
71 if(@VC_OC_Company<>'')
72 begin
73 set @ConSQL=@ConSQL + ' and b.VC_OC_Company like ''%' + @VC_OC_Company+'%'''
74 end
75 if(@VC_A_CardNO<>'')
76 begin
77 set @ConSQL=@ConSQL + ' and a.VC_A_CardNO like ''%' + @VC_A_CardNO+'%'''
78 end
79 if(@CardType>0)
80 begin
81 set @ConSQL=@ConSQL + ' and a.I_A_CardType=' + cast(@CardType as varchar(2))
82 end
83 if(@VC_A_AppendType<>'')
84 begin
85 set @ConSQL=@ConSQL + ' and a.VC_A_AppendType=''' + @VC_A_AppendType+''''
86 end
87 if(@VC_TicketType<>'')
88 begin
89 set @ConSQL=@ConSQL + ' and a.VC_TicketType=''' + @VC_TicketType+''''
90 end
91 if(@VC_TicketNO<>'')
92 begin
93 set @ConSQL=@ConSQL + ' and a.VC_TicketNO=''' + @VC_TicketNO+''''
94 end
95 if(@StartDate<>'')
96 begin
97 set @ConSQL=@ConSQL + ' and a.D_A_AppendDateTime>=''' + @StartDate+''''
98 end
99 if(@EndDate<>'')
100 begin
101 set @ConSQL=@ConSQL + ' and a.D_A_AppendDateTime<=''' + @EndDate+''''
102 end
103 Execute(@StrSQL + @ConSQL +' order by a.D_A_AppendDateTime DESC')
104
105
106 SELECT
107 c.VC_A_SNNO,
108 [VC_A_AppendType] ,
109 [VC_A_CardNO] ,
110 [I_A_CardType] ,
111 [I_A_PointToOil] ,
112 [VC_TicketType] ,
113 [VC_TicketNO] ,
114 [DE_A_BAmount] ,
115 [DE_A_AppendAmount] ,
116 [DE_A_AAmount] ,
117 [D_A_AppendDateTime] ,
118 [VC_A_Remark] ,
119 [VC_A_OperatorNO]
120 FROM [CT_Append] c , #PageIndex PageIndex
121 WHERE
122 c.VC_A_SNNO = PageIndex.VC_A_SNNO AND
123 PageIndex.IndexID > @PageLowerBound AND
124 PageIndex.IndexID < @PageUpperBound
125
126
127 Execute('SELECT COUNT(VC_A_SNNO) AS TotalRecords FROM [CT_Append] a LEFT OUTER JOIN
128 CT_OuterCard b ON a.VC_A_CardNO = b.VC_OC_CardNO LEFT OUTER JOIN
129 CT_InhouseCard c ON a.VC_A_CardNO = c.VC_IC_CardNO where a.RecordNO<>0' + @ConSQL)
130 END