SQL组详细信息

时间:2020-05-12 20:16:22

标签: sql sql-server

我有2张桌子。

表_1

ProblemNeedsMeet    ServicesMeet              Count 
Education           Student Financial Aid       2   
Education           Alternative Education       1   
Education           ESL                         1   

表_2

ProblemNeedsUnmeet  ServicesUnmeet            CountUnmeet   
Education           Higher Education Awareness  1   
Education           Higher Education Bridge     1   

我喜欢加入,所以像这样的数据

ProblemNeedsMeet    ServicesMeet              Count    ServicesUnmeet             CountUnmeet
Education           Student Financial Aid       2      Higher Education Awareness   1   
Education           Higher Education Bridge     1      Alternative Education        1
Education           ESL                         1   

我的查询

select m.ProblemNeedsMeet
    ,m.ServicesMeet
    ,m.ServicesMeetCount
    ,u.ServicesUnmeet
    ,u.ServicesUnMeetCount
from table_1 m
join table_2 u on m.ProblemNeedsMeet = u.ProblemNeedsUnMeet

1 个答案:

答案 0 :(得分:0)

您要“并排”放置行。为此,您需要一个专栏。 。 。您可以使用row_number()生成它:

select m.ProblemNeedsMeet, m.ServicesMeet, m.ServicesMeetCount
       u.ServicesUnmeet, u.ServicesUnMeetCount
from (select m.*, row_number() over (order by ServicesMeetCount desc) as seqnum
      from table_1 m
     ) m full join
     (select u.*,  row_number() over (order by ServicesUnmetCount desc) as seqnum
      from table_2 u
     ) u
     on m.seqnum = u.seqnum;

此方法使用full join,因此两个表都将包括所有行,无论哪个行更多。