34,587
社区成员
发帖
与我相关
我的任务
分享
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[GetRecordList]
@CurrentWarehouse INT,
@Code NVARCHAR(50),
@LocationID NVARCHAR(50),
@Begin DATETIME,
@End DATETIME,
@Page INT,
@PageSize INT,
@RowCount INT OUTPUT
AS
DECLARE @iTemp INT
IF @CurrentWarehouse = 0
SET @CurrentWarehouse = '%%'
ELSE
SET @CurrentWarehouse=LTRIM(@CurrentWarehouse)
IF @Code = ''
SET @Code = '%%'
SET @RowCount = 0
SELECT @RowCount = COUNT(1) FROM (
SELECT L.Amount,L.warehouseID,L.LocationID,Locations.LastUpdate,P.* FROM Products P INNER JOIN LocationStorage L ON P.ID=L.ProductID
JOIN dbo.Locations ON Locations.ID=L.LocationID ) AS Checkp WHERE Code LIKE '%'+@Code+'%' AND warehouseID LIKE @CurrentWarehouse
AND LocationID LIKE '%'+@LocationID+'%' AND Locations.LastUpdate BETWEEN @Begin AND @End
IF(@RowCount = 0)
RETURN 0
SET @iTemp = (@Page - 1) * @PageSize ;
WITH tmp_table
AS
(
SELECT ROW_NUMBER() OVER(ORDER BY Code) AS row_id,* FROM (SELECT L.Amount,L.warehouseID,L.LocationID,Locations.LastUpdate,P.* FROM Products P INNER JOIN LocationStorage L ON P.ID=L.ProductID
JOIN dbo.Locations ON Locations.ID=L.LocationID) AS Checkp
)
SELECT TOP (@PageSize) * FROM tmp_table WHERE row_id>@iTemp AND Code like '%'+@Code+'%' AND warehouseID LIKE @CurrentWarehouse AND LocationID LIKE '%'+@LocationID+'%' AND Locations.LastUpdate BETWEEN @Begin AND @End ORDER BY Code ASC
SELECT L.Amount,L.warehouseID,L.LocationID,Locations.LastUpdate,P.* FROM Products P INNER JOIN LocationStorage L ON P.ID=L.ProductID
JOIN dbo.Locations ON Locations.ID=L.LocationID ) AS Checkp WHERE Code LIKE '%'+@Code+'%' AND warehouseID LIKE @CurrentWarehouse
AND LocationID LIKE '%'+@LocationID+'%' AND Locations.LastUpdate BETWEEN @Begin AND @End ---这儿的LocationID要指明表名
--错了,是Locations
AND LocationID LIKE '%'+@LocationID+'%' AND Locations.LastUpdate --这个Locations删掉
BETWEEN @Begin AND @End
AND LocationID LIKE '%'+@LocationID+'%' AND LastUpdate --这个LastUpdate删掉
BETWEEN @Begin AND @End