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.CreatedDeclare @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