日期:2014-05-17  浏览次数:20943 次

求一条SQL语句,请各位帮帮忙
我有两个表:
  (1)Dv_user                                                                 (2)Bu_wenziindex
    userid     int;                                                                   id   int;
    username   nvarvhar(50);                                               username   nvarchar(50);
    num   int                                                                             userid   int
 
    num是计算表2中每个username的发帖数量,我现在想显示每个不同用户提交的
最后1条数据,并将最后10位用户的username显示出来.

------解决方案--------------------
这个有点麻烦,不知道怎么说.
反正就是先打开Dv_user表,然后开始循环查询Bu_wenziindex表,然后根据需要列出你想要的数据.不过这样对系统压力比较大,如果数据量过多,建议另外想别的办法...
------解决方案--------------------
帮你顶一下
------解决方案--------------------
select top 提取数据的个数 存储文章的表.文章标题列 from 存储文章的表 where 存储文章的表.发帖人id=Bu_wenziindex.id

另外一个问题类似
------解决方案--------------------
用循环和两条查询语句就可以了呀!且只用一个表就是你的那个(Dv_user)
(1)Dv_user (2)Bu_wenziindex
userid int; id int;
username nvarvhar(50); username nvarchar(50);
num int userid int
先select top 10 username from Dv_user 查出用户名
用rs( "username ")得到用户名
循环开始--
然后根据用户名查留言 selct top 1 * from Dv_user where username= "&rs( "username ")& " order by desc
--循环结束
------解决方案--------------------
错,看来需要两条SQL

最后10位用户username显示出来

sql= "select top 10 distinct a.username from dv_user as a,bu_wenziindex as b where a.userid=b.userid order by num "

如果bu_wenziindex的id为不重复、自增量的状态下

sql= "select id from bu_wenziindex where id in (select top 1 a.id from bu_wenziindex as a where a.id=b.id order by id desc) "

不过还是感觉你写的字段太少了。
------解决方案--------------------
sql= "select id from bu_wenziindex where id in (select top 1 a.id from bu_wenziindex as a where a.id=b.id order by id desc) "
这个SQL通不过吧 order by id desc 能放里面吗?
------解决方案--------------------
呵呵 我不是发问者 发问者不知跑那去了,
无语~~~`
------解决方案--------------------
试一下,没测试,大致是这个思路吧
所有用户的不重贴子
SELECT wenziid,wenzititle,wenziaddress,wenzidate,username,userid FROM Bu_wenziindex INNER JOIN (SELECT DISTINCT(username) AS dist_name,MAX(wenzidate) AS max_time FROM Bu_wenziindex GROUP BY username) AS seartable ON seartable.dist_name = Bu_wenziindex.username AND seartable.max_time = Bu_wenziindex.wenzidate