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
Ïà¹ØÎÊ´ð£º
ÎÒÓÐÒ»¸ö±í£¬½á¹¹ÊÇÕâÑù¡£
ת³ö µ¥Î» תÈ뵥λ ±ÊÊý ½ð¶î
date(Ö÷) outid(Ö÷) inid(Ö÷) num amt
2009 1 2 1 500 Ϊ 1 µ¥Î» ÔÚ2009Ä ......
½ñÌì×öÁËÒ»¸ö´æ´¢¹ý³Ì »·¾³ÊÇSQL2000Êý¾Ý¿â
´óÖÂÈçÏÂ
½¨Á¢ÁÙʱ±í
¶¨ÒåÔ±¹¤Óαê
Ñ»·Ô±¹¤£¨ÊôÓÚ1¸ö¹«Ë¾)
......
sqlµÄÈí¼þÔÚÄÄÀï¿ÉÒÔϰ¡£¡ÔÚÍøÉÏÕÒÁËÂù¶à¶¼Óò»Á˰¡
Ëæ±ã¸ãÒ»D°æ°É£¬
ѸÀ×µÚÒ»¸ö¾Í¿ÉÒÔÓÃ
2000,2005¶¼ÕâÑù
http://119.147.41.16/down?cid=0698C2D64D7D637D90A6D2482298E6717D4F15CD&t=2&fmt=-1 ......