CREATE PROCEDURE [dbo].[GetReceiptInfoOrg]
(
@OrganizationStructrueId INT = NULL ,@StartTime DATETIME = NULL , @EndTime DATETIME = NULL ,
@TimeRate INT = NULL , @TypeId INT ,@PageIndex INT = 0 , @PageSize INT = 2147483644 , @TotalRecords INT = NULL OUTPUT
)
AS
BEGIN
SET NOCOUNT ON
DECLARE @PageLowerBound INT
DECLARE @PageUpperBound INT
DECLARE @sql NVARCHAR(4000)
DECLARE @sqlcount NVARCHAR(4000)
DECLARE @RowsToReturn INT
DECLARE @ServiceCommon int
DECLARE @ServiceCustomer int
SET @RowsToReturn = @PageSize * ( @PageIndex + 1 )
SET @PageLowerBound = @PageSize * @PageIndex
SET @PageUpperBound = @PageLowerBound + @PageSize + 1
set @ServiceCommon=304
set @ServiceCustomer=331
CREATE TABLE #DisplayReceiptInformationOrganization
(
[IndexId] INT IDENTITY(1, 1)
NOT NULL ,
ProjectName NVARCHAR(200) ,
Whole INT ,
CommissionedCustomer INT ,
PublicDelegate INT ,
SMSSingle INT ,
CompletionRate INT ,
TimeRate INT ,
WorkingHours INT ,
AmountTelephoneAccess INT ,
Satisfaction INT
)
IF @TypeId = 1
BEGIN
WITH t1 AS (
SELECT ReceiptInformationId
FROM dbo.ReturnVisit
GROUP BY ReceiptInformationId
)
,t2 AS (
SELECT c.*
FROM t1
CROSS APPLY (
SELECT top 1
ReceiptInformationId,
Satisfaction
FROM dbo.ReturnVisit rv
WHERE rv.ReceiptInformationId = t1.ReceiptInformationId
ORDER BY ReturnVisitDate DESC
) c
)
------解决思路----------------------
在每个from 表名 后面加上 with(nolock) 试试。
------解决思路----------------------
读表的时候,加上With(NoLock)试试吧,不加的话,数据量一大更新一频繁100%死锁