首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

队列转换后分页出错,求帮组,

2013-07-01 
行列转换后分页出错,求帮组,急急急!!!这是我行列转换的的sqlselect c.* from (select legal_entity_id,pro

行列转换后分页出错,求帮组,急急急!!!
这是我行列转换的的sql


select c.* from (
select legal_entity_id,process_date,record_id,amount from engine_fp where process_date='2013-06-25'
) s pivot (max(amount) for record_id in([23],[24],[25],[26],[27],[28],[29],[30],[31],[33],[34],[38])) 
c order by legal_entity_id


因为项目里面用的是hibernate 下面是它自己封装的分页sql,执行出错

WITH query AS (
SELECT inner_query.*, ROW_NUMBER() OVER (ORDER BY CURRENT_TIMESTAMP) as __hibernate_row_nr__ 
FROM ( 
select TOP(40) c.* as page0_ from (
select legal_entity_id,process_date,record_id,amount from engine_fp where process_date='2013-06-25'
) s pivot (max(amount) for record_id in([23],[24],[25],[26],[27],[28],[29],[30],[31],[33],[34],[38])) 
c order by legal_entity_id 
) inner_query 

) SELECT page0_ FROM query WHERE __hibernate_row_nr__ >= 20 AND __hibernate_row_nr__ < 40

原因是 select TOP(40) c.* as page0_ from 这里用as就出错
如果修改我第一句sql使得框架封装以后实现分页效果 分页
[解决办法]

WITH query AS (
SELECT inner_query.*, ROW_NUMBER() OVER (ORDER BY CURRENT_TIMESTAMP) as __hibernate_row_nr__ 
FROM ( 
select TOP(40) *  from (
select legal_entity_id,process_date,record_id,amount from engine_fp where process_date='2013-06-25'
) s pivot (max(amount) for record_id in([23],[24],[25],[26],[27],[28],[29],[30],[31],[33],[34],[38])) 
c order by legal_entity_id 
) inner_query 

) SELECT legal_entity_id,process_date,record_id,amount 
FROM query WHERE __hibernate_row_nr__ >= 20 AND __hibernate_row_nr__ < 40

这样呢?
------解决方案--------------------


WITH query AS (
SELECT inner_query.*, ROW_NUMBER() OVER (ORDER BY CURRENT_TIMESTAMP) as __hibernate_row_nr__ 
FROM ( 
select TOP(40) c.*  from (
select legal_entity_id,process_date,record_id,amount from engine_fp where process_date='2013-06-25'
) s pivot (max(amount) for record_id in([23],[24],[25],[26],[27],[28],[29],[30],[31],[33],[34],[38])) 
c order by legal_entity_id 
) inner_query 

) SELECT * FROM query WHERE __hibernate_row_nr__ >= 20 AND __hibernate_row_nr__ < 40

热点排行