新闻表List由list_id list_title list_date user_id user_name组成 
评论表ping 由ping_id user_id user_name list_id ping_date 现建立一个视图查询实现如下列表显示 
list_id  list_title list_date user_id  user_name    ping_user_id    ping_user_name    ping_date      ping_count 
新闻ID    新闻标题    发布日期  发布人ID  发布人用户名    最后评论人ID    最后评论人用户名    最后评论的日期    总评论数 通过表list的list_id评论表ping的list_id相等建立LEFT OUTER JOIN 建立一个视图 语句如下 SELECT dbo.list.list_id, dbo.list.list_title, dbo.list.list_date, dbo.list.user_name, dbo.list.user_id,       MAX(dbo.ping.user_name) AS ping_user_name, 
      MAX(dbo.ping.user_id) AS ping_user_id, 
      MAX(dbo.ping.ping_date) AS ping_date_last, 
      COUNT(dbo.ping.ping_id) AS ping_count FROM dbo.list LEFT OUTER JOIN 
      dbo.ping ON dbo.list.list_id = dbo.ping.list_id GROUP BY dbo.list.list_id, dbo.list.list_title, dbo.list.list_date, dbo.list.user_name, dbo.list.user_id ORDER BY dbo.list.list_id DESC, 
      MAX(dbo.ping.ping_date) DESC 
为什么 "最后评论人ID" "最后评论人用户名" 显示总是错误 ,它不是显示的是对应最后日期的评论人和评论ID 而是最大的值 
请问如何修改使得 ping_user_id    ping_user_name  和ping_date 对应 显示为最后评论的人 ID 日期 ,我原本数据库是ACCESS用下面俩行就可以了
在 access “查询”中 用last 函数就能搞定,
     last(dbo.ping.user_name) AS ping_user_name, 
    last(dbo.ping.user_id) AS ping_user_id, 
网友tjccn_wx提供如下,可以运行了,但这么着效率会比较差 
比较直观的是 
      MAX(dbo.ping.user_name) AS ping_user_name, 
      MAX(dbo.ping.user_id) AS ping_user_id, 
改成 
(select top 1dbo.ping.user_name from ping dbo.ping where list.list_id = ping.list_id ordr by dbo.ping.ping_date desc) AS ping_user_name, 
(select top 1dbo.ping.user_id from ping dbo.ping where list.list_id = ping.list_id ordr by dbo.ping.ping_date desc) AS ping_user_id, 
请问还有其它办法吗?