sql 2005 分页排序问题 - MS-SQL Server / 疑难问题
有 user,message两个表
结果如下
user
pkid int
message
pkid int
userid int
Titles nvarchar(50)
CreateTime datetime
要写个 存储过程,输入起始时间和结束时间,统计出每个user在这个时间段的 message 数量 并按数量分页排序,
最佳利用存储过程实现分页的程序
SQL code:
--有 user,message两个表
--结果如下
--user
--pkid int
--name 应该还有个字段
--message
--pkid int
--userid int
--Titles nvarchar(50)
--CreateTime datetime
--要写个 存储过程,输入起始时间和结束时间,统计出每个user在这个时间段的 message 数量 并按数量分页排序
IF OBJECT_ID('[p_test]') IS NOT NULL
DROP PROC [p_test]
GO
CREATE PROC [p_test]
@bt datetime,
@et datetime,
@PageCurrent int=1,--显示第几页
@PageSize int=10 --每页大小
AS
WITH T AS
(
SELECT Rn=row_number()OVER(ORDER BY count(1) DESC),
A.name,count(1) cnt
from [User] A
JOIN [message] B
ON A.pkid=B.pkid
GROUP BY A.name
)
SELECT *
from T
WHERE (Rn-1)/@PageSize+1=@PageCurrent
GO
SQL code:
declare @begintime datetime, @endtime datetime
;with t as
(
select count(*) as num ,u.username from user u,message m
where u.pid=m.userid
and CreateTime between @begintime and @endtime
相关问答:
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jas ......
从数据库中查询一张表的数据
select 部门,姓名 from tb
如何才能生成下面的xml格式
XML code:
<folder state="unchecked" label="全部">
<folder state="unchecked&qu ......
字段1,字段2.....字段N,Status,ParentID
1,Name1....test1,1,99
1,Name1....test1,3,99
1,Name2....test2,1,101
1,Name2....test2,3,101
1,Name3....test3,2,101
1,Name1....test1,4,101
想要的结果是:
1,Na ......
我觉得mysql和sqlserver有共同的地方:
有个问题是关于表的锁问题:
进程A 进程B
select * from user where id in lock share mode(共享锁)
&nb ......
表A
日期 支出金额
2010-04-01 120
2010-04-02 250
2010-05-01 100
2010-05-04 200
2010-05-06 300
表B
日期 ......