-- 添加数据到临时表
SELECT * INTO ##_tbTAMoney 
FROM (SELECT SUM(IsNuLL(a.[Money],0)) As TAMoney,a.ProjCode As ProjectCode 
  FROM Pcbs_MidFeeItem a LEFT JOIN Pcbs_CostType b ON a.MoneyId=b.FeeTypeID
          WHERE b.ParentId IN (207) GROUP BY a.ProjCode ) tDECLARE @sql NVARCHAR(4000)
SET @sql = 'SELECT a.ProjectCode,b.TAMoney,a.RealName,a.DeptName
                  FROM FMIS_Fin_Tr a
                  LEFT JOIN ##_tbTAMoney b ON a.ProjectCode=b.ProjectCode 
                  WHERE 1=1 ' -- 数据分页处理
DECLARE @strsql NVARCHAR(4000)SET @strsql ='
WITH TEMP AS (SELECT Row_Number()OVER(ORDER BY BegDate) As RowNum,a.* 
FROM ('+@sql+')a )SELECT * FROM TEMP WHERE RowNum BETWEEN (@PageIndex - 1) * (@PageSize+ 1) AND @PageIndex * @PageSize '-- 执行这个结果之后b.TAMoney数据为NULL
EXEC sp_executesql @strsql 
-- 执行这个结果 b.TAMoney数据正常
 EXEC (@sql)
-- 这是什么原因,求指导?????

解决方案 »

  1.   

    where rownum between (@pageIndex-1)*@pageSize+1 and @pageSize*@pageindex
      

  2.   

    EXEC sp_executesql @strsql
    没有传参数啊   @PageIndex, @PageSize
      

  3.   

    重点是:##_tbTAMoney 临时表中转换的数据字段 TAMoney 在经过 WITH TEMP .... 分页之后全面显示为NULL,2楼,3楼的朋友说参数的问题是贴上去的代码没贴完整!!!