有两个表
表A存储用户数据 [ID,UserName,Hot] ,Hot是int,用户的热门指数,值越大越热
表B存储用户所有用户发表的文章 [ID,UserID,Title,Content,Hot] ,Hot是int,文章的热门指数,值越大越热我想找出热门数值在前8的用户的名称,和这些用户的热门指数在前8的文章现在是这么做的1步:SELECT TOP ID,UserName FROM A ORDER BY Hot Desc
2步:DataReader.Read()
userID1=DataReader["ID"] DataReader.Read()
userID2=DataReader["ID"]
...
3步:SELECT TOP 8 ID,Title FROM B WHERE UserID=userID1 ORDER BY Click DESC UNION SELECT TOP 8 ID,Title FROM B WHERE UserID=userID2 ORDER BY Click DESC...现在我想把这个写内容都让一个存储过程来完成,返回两个记录集即可,请问这个存储过程该怎么写?
表A存储用户数据 [ID,UserName,Hot] ,Hot是int,用户的热门指数,值越大越热
表B存储用户所有用户发表的文章 [ID,UserID,Title,Content,Hot] ,Hot是int,文章的热门指数,值越大越热我想找出热门数值在前8的用户的名称,和这些用户的热门指数在前8的文章现在是这么做的1步:SELECT TOP ID,UserName FROM A ORDER BY Hot Desc
2步:DataReader.Read()
userID1=DataReader["ID"] DataReader.Read()
userID2=DataReader["ID"]
...
3步:SELECT TOP 8 ID,Title FROM B WHERE UserID=userID1 ORDER BY Click DESC UNION SELECT TOP 8 ID,Title FROM B WHERE UserID=userID2 ORDER BY Click DESC...现在我想把这个写内容都让一个存储过程来完成,返回两个记录集即可,请问这个存储过程该怎么写?
解决方案 »
- asp.net C# webservice 在本机发布到IIS可以,但是发布至史一个服务器就不能运行.请高手来解.谢谢
- 見鬼了,爲什麽提示表缺少主鍵
- asp.net sockets 设置端口重用
- Request.QueryString.ToString()的问题
- Repeater中嵌入textBOX,如何取其中一行的textBOX的值
- 关于DataList的一个问题
- 关于DataTable所占内存大小的问题
- 思考解惑
- DataList控件,如何在页面初始化的时候,读取数据库配置信息,控制模板显示哪些内容?
- 无法从web服务器获得项目文件
- 谁能给推荐本asp.net 2.0的入门教材啊!
- 写这样一段程序:鼠标一点FormView或者DetailsView的Textbox框。。。。。。
select top 8 字段 from B where id in (select top 8 id from A ORDER BY A.HOT DESC) ORDER BY B.HOT
select top 8 username from A order by Hot descselect top 8 title from B where id in (select top 8 id from A order by a.hot desc) order by b.hot desc
SELECT TOP 8 ID,Title FROM B WHERE UserID=userID1 ORDER BY Hot UNION
SELECT TOP 8 ID,Title FROM B WHERE UserID=userID2 ORDER BY Hot UNION
SELECT TOP 8 ID,Title FROM B WHERE UserID=userID3 ORDER BY Hot UNION
SELECT TOP 8 ID,Title FROM B WHERE UserID=userID4 ORDER BY Hot UNION
SELECT TOP 8 ID,Title FROM B WHERE UserID=userID5 ORDER BY Hot UNION
SELECT TOP 8 ID,Title FROM B WHERE UserID=userID6 ORDER BY Hot UNION
SELECT TOP 8 ID,Title FROM B WHERE UserID=userID7 ORDER BY Hot UNION
SELECT TOP 8 ID,Title FROM B WHERE UserID=userID8 ORDER BY Hot
然后循环把各个ID要的8条加到临时表里。
此外没有想到把64条数据放一个表的办法。
表B存储用户所有用户发表的文章 [ID,UserID,Title,Content,Hot] ,Hot是int,文章的热门指数,值越大越热 我想找出热门数值在前8的用户的名称,和这些用户的热门指数在前8的文章select UserName,b.* from (select top 8 * from a)t1,b
where
id in(select top 8 id from a t where UserID=t.UserID order by hot desc)
and t1.id=b.UserID
--稍作修改:
select UserName,b.* from (select top 8 * from a order by Hot desc)t1,b
where
id in(select top 8 id from a t where UserID=t.UserID order by hot desc)
and t1.id=b.UserID
@student2 int,
@Clumn varchar(80),
@table varchar(80)
asdeclare @sql varchar(500)
begin set @sql='select * from '+@table+' where '+@Clumn+' in(select top '+convert(varchar,@student1*@student2)+' '+@Clumn+' from '+@table+') and '+@Clumn+' not in(select top '+convert(varchar,(@student1-1)*@student2)+' '+@Clumn+' from '+@table+')'
execute(@sql)end