Sql ? 请将更新后的查询附加到您的问题,因为我们看不到“This”是什么。或者更好:OH.Created>=Cast(@FromDate作为日期)和OH.Created
Sql ? 请将更新后的查询附加到您的问题,因为我们看不到“This”是什么。或者更好:OH.Created>=Cast(@FromDate作为日期)和OH.Created,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,? 请将更新后的查询附加到您的问题,因为我们看不到“This”是什么。或者更好:OH.Created>=Cast(@FromDate作为日期)和OH.Created
? 请将更新后的查询附加到您的问题,因为我们看不到“This”是什么。或者更好:OH.Created>=Cast(@FromDate作为日期)和OH.Created
Declare @AgreementNumber nvarchar(500)
Declare @SerialNo nvarchar(100)
Declare @EmailId nvarchar(1000)
Declare @CountryId nvarchar(10)
Declare @SaleType tinyint
Declare @CompanyName nvarchar(255)
Declare @PONo numeric(18,0)
Declare @Status tinyint
Declare @POCDeliveryType nvarchar(10)
Declare @FromDate datetime
Declare @ToDate datetime
Declare @CurrentPage numeric
Declare @PageSize numeric
Declare @FileId numeric(18,0)
Declare @PurchaseOrg nvarchar(4)
set @AgreementNumber =''
set @SerialNo =''
set @EmailId =''
set @CountryId ='0014'
set @SaleType=0
set @CompanyName =''
set @PONo= 0
set @Status =0
set @POCDeliveryType =''
set @FromDate =''
set @ToDate =''
set @CurrentPage =1
set @PageSize =100000
set @FileId =0
set @PurchaseOrg =''
----For Paging---------------------------------------------------------------------
Declare @TotalRecord numeric
Declare @StartRow numeric
Declare @EndRow numeric
Set @StartRow=(@PageSize * (@CurrentPage-1)) + 1
Set @EndRow=(@PageSize * (@CurrentPage))
-----------------------------------------------------------------------------------
Select @TotalRecord=Count(*)
From OrderHeader OH inner join OrderLine OL on OH.OrderID=OL.OrderId
Where (OH.CountryId=@CountryId or ISNULL(@CountryId,'')='') and
(OH.PurchaseOrg=@PurchaseOrg or ISNULL(@PurchaseOrg,'')='') and
(SaleType=@SaleType or ISNULL(@SaleType,0)=0) and
(CompanyName like '%'+ isnull(@CompanyName,'') + '%'or isnull(@CompanyName,'')='')and
(PurchaseOrderNo = @PONo or isnull(@PONo,0)=0)and
(OL.Status=@Status or ISNULL(@Status,0)=0) and
(POCDeliveryPreference=@POCDeliveryType or ISNULL(@POCDeliveryType,'')='') and
((CONVERT(VARCHAR(12),OH.Created,112)>=CONVERT(VARCHAR(12),@FromDate,112))or (Isnull(@FromDate,'')=''))and
(CONVERT(VARCHAR(12),OH.Created,112)<=CONVERT(VARCHAR(12),@ToDate,112)or (Isnull(@ToDate,'')='')) and
(OL.SerialNumber like '%'+@SerialNo+'%' or ISNULL(@SerialNo,'') ='') and
(OL.AgreementNumber like '%'+@AgreementNumber+'%' or ISNULL(@AgreementNumber,'') ='') and
(OH.EmailAddress like '%'+@EmailId+'%' or ISNULL(@EmailId,'') ='') and
(OH.FileId=@FileId or isnull(@FileId,0)=0)
Select *, @TotalRecord as TotalRecord From
(
**Select ROW_NUMBER() OVER
(
Order By OH.Created Desc
)as Row**,OH.OrderID,ISNULL(CustomerId,'') as CustomerId,ISNULL(OH.CountryId,'') as CountryId,SaleType,HwPurchaseDate,ISNULL(AddressLine1,'') as
AddressLine1,ISNULL(AddressLine2,'') as AddressLine2,ISNULL(City,'') as City,ISNULL([State],'') as [State],ISNULL(Zip,'') as Zip,
ISNULL(County,'') as County,ISNULL(CompanyName,'') as CompanyName,ISNULL(EmailAddress,'') as EmailId,ISNULL(FirstName,'') as FirstName,
ISNULL(LastName,'') as LastName,ISNULL(PrimaryPhone,'') as Phone,ISNULL(PurchaseOrderNo,0) as POno,ISNULL(OL.[Status],0) as [Status],POCDeliveryPreference,
POCLanguage,CustPOReference,ISNULL(CurrencyCode,'') as CurrencyCode,TransactionId,ISNULL(OH.DeliveryStatus,0) as DeliveryStatus,
isnull(IPAddress,'') as IPAddress, ISNULL(InTouchSessionId,'') as InTouchSessionId, ISNULL(InTouchUserId,'') as InTouchUserId,
ISNULL(SourceSystem,0) as SourceSystem,SalesOrderDate,OH.Created,isnull(OL.SerialNumber,'') as SerialNumber,ISNULL(OL.AgreementNumber,'') as AgreementNumber,
ISNULL(OL.PurchaseOrderNoLineLevel,'') as PurchaseOrderNoLineLevel,ISNULL(OL.ProductName,'') as ProductName,ISNULL(OL.OrderQty,0) as OrderQty,
ISNULL(OL.ManufPartNo,'') as ManufPartNo,isnull(OL.VendorStatus,'') as VendorStatus, isnull(OL.StatusRemark, '') as StatusRemark
From OrderHeader OH inner join OrderLine OL on OH.OrderID=OL.OrderId
Where (OH.CountryId=@CountryId or ISNULL(@CountryId,'')='') and
(OH.PurchaseOrg=@PurchaseOrg or ISNULL(@PurchaseOrg,'')='') and
(SaleType=@SaleType or ISNULL(@SaleType,0)=0) and
(CompanyName like '%'+ isnull(@CompanyName,'') + '%'or isnull(@CompanyName,'')='')and
(PurchaseOrderNo = @PONo or isnull(@PONo,0)=0)and
(OL.Status=@Status or ISNULL(@Status,0)=0) and
(POCDeliveryPreference=@POCDeliveryType or ISNULL(@POCDeliveryType,'')='') and
((CONVERT(VARCHAR(12),OH.Created,112)>=CONVERT(VARCHAR(12),@FromDate,112))or (Isnull(@FromDate,'')=''))and
(CONVERT(VARCHAR(12),OH.Created,112)<=CONVERT(VARCHAR(12),@ToDate,112)or (Isnull(@ToDate,'')='')) and
(OL.SerialNumber like '%'+@SerialNo+'%' or ISNULL(@SerialNo,'') ='') and
(OL.AgreementNumber like '%'+@AgreementNumber+'%' or ISNULL(@AgreementNumber,'') ='') and
(OH.EmailAddress like '%'+@EmailId+'%' or ISNULL(@EmailId,'') ='') and
(OH.FileId=@FileId or isnull(@FileId,0)=0)
)
as RowResults
Where Row between @StartRow AND @EndRow
OH.CountryId = @CountryId or ISNULL(@CountryId, '') = '')
((CONVERT(VARCHAR(12),OH.Created,112)>=CONVERT(VARCHAR(12),@FromDate,112))
(CONVERT(VARCHAR(12),OH.Created,112)<=CONVERT(VARCHAR(12),@ToDate,112)
Declare @AgreementNumber nvarchar(500)
Declare @SerialNo nvarchar(100)
Declare @EmailId nvarchar(1000)
Declare @CountryId nvarchar(10)
Declare @SaleType tinyint
Declare @CompanyName nvarchar(255)
Declare @PONo numeric(18,0)
Declare @Status tinyint
Declare @POCDeliveryType nvarchar(10)
Declare @FromDate datetime
Declare @ToDate datetime
Declare @CurrentPage numeric
Declare @PageSize numeric
Declare @FileId numeric(18,0)
Declare @PurchaseOrg nvarchar(4)
set @AgreementNumber =''
set @SerialNo =''
set @EmailId =''
set @CountryId ='0014'
set @SaleType=0
set @CompanyName =''
set @PONo= 0
set @Status =0
set @POCDeliveryType =''
set @FromDate =''
set @ToDate =''
set @CurrentPage =1
set @PageSize =100000
set @FileId =0
set @PurchaseOrg =''
----For Paging---------------------------------------------------------------------
Declare @TotalRecord numeric
Declare @StartRow numeric
Declare @EndRow numeric
Set @StartRow=(@PageSize * (@CurrentPage-1)) + 1
Set @EndRow=(@PageSize * (@CurrentPage))
-----------------------------------------------------------------------------------
--Select @TotalRecord=Count(*)
--From OrderHeader OH inner join OrderLine OL on OH.OrderID=OL.OrderId
--Where (OH.CountryId=@CountryId or ISNULL(@CountryId,'')='') and
--(OH.PurchaseOrg=@PurchaseOrg or ISNULL(@PurchaseOrg,'')='') and
-- (SaleType=@SaleType or ISNULL(@SaleType,0)=0) and
-- (CompanyName like '%'+ isnull(@CompanyName,'') + '%'or isnull(@CompanyName,'')='')and
-- (PurchaseOrderNo = @PONo or isnull(@PONo,0)=0)and
-- (OL.Status=@Status or ISNULL(@Status,0)=0) and
-- (POCDeliveryPreference=@POCDeliveryType or ISNULL(@POCDeliveryType,'')='') and
-- ((CONVERT(VARCHAR(12),OH.Created,112)>=CONVERT(VARCHAR(12),@FromDate,112))or (Isnull(@FromDate,'')=''))and
-- (CONVERT(VARCHAR(12),OH.Created,112)<=CONVERT(VARCHAR(12),@ToDate,112)or (Isnull(@ToDate,'')='')) and
-- (OL.SerialNumber like '%'+@SerialNo+'%' or ISNULL(@SerialNo,'') ='') and
-- (OL.AgreementNumber like '%'+@AgreementNumber+'%' or ISNULL(@AgreementNumber,'') ='') and
-- (OH.EmailAddress like '%'+@EmailId+'%' or ISNULL(@EmailId,'') ='') and
-- (OH.FileId=@FileId or isnull(@FileId,0)=0)
With RowResults as
(
Select ROW_NUMBER() OVER
(
Order By OH.Created Desc
)as Row ,OH.OrderID,ISNULL(CustomerId,'') as CustomerId,ISNULL(OH.CountryId,'') as CountryId,SaleType,HwPurchaseDate,ISNULL(AddressLine1,'') as
AddressLine1,ISNULL(AddressLine2,'') as AddressLine2,ISNULL(City,'') as City,ISNULL([State],'') as [State],ISNULL(Zip,'') as Zip,
ISNULL(County,'') as County,ISNULL(CompanyName,'') as CompanyName,ISNULL(EmailAddress,'') as EmailId,ISNULL(FirstName,'') as FirstName,
ISNULL(LastName,'') as LastName,ISNULL(PrimaryPhone,'') as Phone,ISNULL(PurchaseOrderNo,0) as POno,ISNULL(OL.[Status],0) as [Status],POCDeliveryPreference,
POCLanguage,CustPOReference,ISNULL(CurrencyCode,'') as CurrencyCode,TransactionId,ISNULL(OH.DeliveryStatus,0) as DeliveryStatus,
isnull(IPAddress,'') as IPAddress, ISNULL(InTouchSessionId,'') as InTouchSessionId, ISNULL(InTouchUserId,'') as InTouchUserId,
ISNULL(SourceSystem,0) as SourceSystem,SalesOrderDate,OH.Created,isnull(OL.SerialNumber,'') as SerialNumber,ISNULL(OL.AgreementNumber,'') as AgreementNumber,
ISNULL(OL.PurchaseOrderNoLineLevel,'') as PurchaseOrderNoLineLevel,ISNULL(OL.ProductName,'') as ProductName,ISNULL(OL.OrderQty,0) as OrderQty,
ISNULL(OL.ManufPartNo,'') as ManufPartNo,isnull(OL.VendorStatus,'') as VendorStatus, isnull(OL.StatusRemark, '') as StatusRemark
From OrderHeader OH inner join OrderLine OL on OH.OrderID=OL.OrderId
Where (OH.CountryId=@CountryId or ISNULL(@CountryId,'')='') and
(OH.PurchaseOrg=@PurchaseOrg or ISNULL(@PurchaseOrg,'')='') and
(SaleType=@SaleType or ISNULL(@SaleType,0)=0) and
(CompanyName like '%'+ isnull(@CompanyName,'') + '%'or isnull(@CompanyName,'')='')and
(PurchaseOrderNo = @PONo or isnull(@PONo,0)=0)and
(OL.Status=@Status or ISNULL(@Status,0)=0) and
(POCDeliveryPreference=@POCDeliveryType or ISNULL(@POCDeliveryType,'')='') and
((CONVERT(VARCHAR(12),OH.Created,112)>=CONVERT(VARCHAR(12),@FromDate,112))or (Isnull(@FromDate,'')=''))and
(CONVERT(VARCHAR(12),OH.Created,112)<=CONVERT(VARCHAR(12),@ToDate,112)or (Isnull(@ToDate,'')='')) and
(OL.SerialNumber like '%'+@SerialNo+'%' or ISNULL(@SerialNo,'') ='') and
(OL.AgreementNumber like '%'+@AgreementNumber+'%' or ISNULL(@AgreementNumber,'') ='') and
(OH.EmailAddress like '%'+@EmailId+'%' or ISNULL(@EmailId,'') ='') and
(OH.FileId=@FileId or isnull(@FileId,0)=0)
)
Select max (Row) , * FRom RowResults
Where Row between @StartRow AND @EndRow
option (recompile)
-- quick fix only
-- --if using SQL SERVER 2012
-- OFFSET @StartRow ROWS
--FETCH NEXT @EndRow -@StartRow ROWS ONLY
--if ans still not gaining performance we wold like to see actual exection plan