select 
    Topic_ID =A.Topic_ID,
    Topic_Title=A.Topic_Title,
    Who_Name=max(B.Who_Name)
from 
   表1 A inner join 表2 B
on A.Topic_ID=B.Topic_ID 
group by A.Topic_ID,A.Topic_Title

解决方案 »

  1.   

    create function a (@id int)
    returns varchar(10)
    as
    begin
     declare
     @x varchar(10)
     select @x=max(whoname) from 表2 where topic_id=@id
     return @x
    endselect *,dbo.a(Topic_ID) as  Who_Name
    from 表1
      

  2.   

    天。不能用max(whoname)

      yyyy4
    之类的东西是用了表达意图清楚才加了个4的。他可能是“啊发射点发达十分上”或者“安定发射点发射点发生”
      

  3.   

    自己搞定了。SELECT T.Top_Title,T.Top_ID,T.TopTitleCreator,T.TopCreateDate,BB.StaffName
    FROM Jz_office_DiscussionTopic T  JOIN (
    SELECT StaffName,Top_ID FROM Jz_office_DiscussionTopicToPass WHERE Step_Id IN
    (Select  
           MAX(B.Step_Id) AS Step_id  
    FROM Jz_office_DiscussionTopic A JOIN 
    Jz_office_DiscussionTopicToPass B ON
    A.Top_Id=B.Top_Id  WHERE B.IsPass=0 group by B.Top_Id )
    ) BB ON  BB.Top_ID=T.Top_ID  WHERE T.Top_Cate=1 ORDER BY T.TOP_ID DESC 谢谢以上的两个提示偶用MAX函数。
      

  4.   

    create proc MyDiscussionTopicTab
    @Top_Cate INT,
    @TopTitleCreator varchar(50)
    ASSELECT T.Top_Title,T.Top_ID,T.TopTitleCreator,T.TopCreateDate,BB.StaffName
    FROM Jz_office_DiscussionTopic T  JOIN (
    SELECT StaffName,Top_ID FROM Jz_office_DiscussionTopicToPass WHERE Step_Id IN
    (Select  
           MAX(B.Step_Id) AS Step_id  
    FROM Jz_office_DiscussionTopic A JOIN 
    Jz_office_DiscussionTopicToPass B ON
    A.Top_Id=B.Top_Id  WHERE B.IsPass=0 group by B.Top_Id )
    ) BB ON  BB.Top_ID=T.Top_ID  WHERE  (T.IsPass=0 AND T.Top_Cate=@Top_Cate AND T.TopTitleCreator=@TopTitleCreator)
     ORDER BY T.TOP_ID DESC