有一条SQL语句从数据库(SQL Server)中检索数据,实现分页查询数据
查询SQL语句:select 字段1,字段2,字段3,字段4 from tab1 left join tab2 on tab1.字段1 = tab2.字段1 order by 字段2
要实现对上面的SQL语句查询结果的某一页进行统计汇总,汇总语句(统计和分组字段由用户自定义)如下:
汇总SQL语句:select sum(字段3),字段4 from (上面查询语句的第n页结果集) group by 字段4
将汇总后的数据以统计图的形式展示
实现功能要求如下:
1、用户输入查询的SQL语句
2、针对用户输入的语句输出报表,可以实现翻页
3、用户可以针对某一页的数据设计汇总与分组字段产生统计图(统计图使用Ext js)
分页功能的实现实现方式是根据用户的SQL语句把数据全部查询出来,然后从ResultSet读取某一页的数据返回到前台页面。
但要实现对某一页的数据进行汇总时,如果使用select sum(字段3),字段4 from (用户的查询语句) group by 字段4,如果用户的查询语句包含order by,此用户的查询语句是无法放入到子查询中,且无法组织成分页语句,请问对某一页的数据进行汇总有什么方法没?
我的小伙伴,这个是你需要的吗:
-- 得到第 49 页数据,每页 15 条数据 with #pager2 as ( with #pager as (
select tab1.字段1,字段2,字段3,字段4,
ROW_NUMBER() OVER(Order By 字段2) as rowid
from tab1 left join tab2 on tab1.字段1 = tab2.字段1
) select ID,Title from #pager where rowid between (15 * (50-1)+1) and 15 * 50 ) select sum(字段3),字段4 from #pager2 group by 字段4
如果SQL语句中包含order by 语句会出现以下错误:
消息 1033,级别 15,状态 1,第 21 行
除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。
消息 156,级别 15,状态 1,第 22 行
关键字 'from' 附近有语法错误。
@泱泱: 你把你两个表的建表语句发上来,我写最终的sql给你