日期:2014-05-18  浏览次数:20428 次

向大家请教一个很复杂的视图???
两张表  
  UsePro(Id,UserId,ProName,ProDesc,CreateTime)     商品表
  UserInfo(UserId,UserName,HeadImage)     用户表

现在是建立一张   Distinct   ProName     的视图

因为同一个ProName   有可能有不同的UserId   发上来。

表如下:
    UsePro                                                                           UserInfo
Id   ProName     UserId         createtime                         Id       USerName
1         百里           1                   2007-1-1                           1         ddddd
2         百里           2                   2007-1-30                         2           ffff
3           的             3                                                             3         dddd


视图如下:      

          ProName               UserId                     UserName                   Count
            物品名     最新的一个发布用户     对应的用户名         该物品对应多少个UserId

              百里                   2                                       ffff                         2
                的                     3                                       dddd                           1


------解决方案--------------------
--try:
select A.proname,A.userid,C.username, (select count(*) from usepro where proName=A.proname) as [count]
from usepro A
inner join
(select proname, max(createtime) as createtime from UsePro group by proname) B
on A.proname=B.proname and A.createtime=B.createtime
inner join userinfo C
on A.userid=C.id
------解决方案--------------------
CREATE TABLE UsePro
(
Id INT,
UserId INT,
ProName VARCHAR(50),
CreateTime DATETIME
)
CREATE TABLE UserInfo
(
UserId INT,
UserName VARCHAR(50)
)
INSERT INTO UsePro
SELECT 1,1, '百里 ', '2007-1-1 ' UN