使用sql中的链接表选择数据

使用sql中的链接表选择数据,sql,tsql,Sql,Tsql,我有一个链接表和一个链接表。链接表将有两条数据记录,一条是“区域”,另一条是“子区域”,实际表也有两条“区域”和“子区域”的记录。我想使用链接获取单个记录 我认为这个例子将更能说明我在寻找什么 活动区 区域 输出 区域始终以SS开头,子区域以SR 如何以这种方式获得输出 更新 这里怎么了 SELECT e.EventId, e.Event_Code AS Code, e.Event_Type_Description AS [Event],

我有一个链接表和一个链接表。链接表将有两条数据记录,一条是“区域”,另一条是“子区域”,实际表也有两条“区域”和“子区域”的记录。我想使用链接获取单个记录

我认为这个例子将更能说明我在寻找什么

活动区 区域 输出 区域始终以
SS
开头,子区域以
SR

如何以这种方式获得输出

更新 这里怎么了

SELECT      e.EventId,
            e.Event_Code AS Code,
            e.Event_Type_Description AS [Event],                
            e.Event_Name as Name,               
            max(case when left(er.RegionType_Code, 2) = 'SS' then r.region_name end) Region,
            max(case when left(er.RegionType_Code, 2) = 'SR' then r.region_name end) SubRegion      

FROM         dbo.Event e                 
             INNER JOIN Event_Region er ON er.EventId = e.EventId
             INNER JOIN Region r ON r.RegionId = er.RegionId 
group by e.EventId;
我犯了一个错误


列“dbo.Event.Event\u code”在选择列表中无效,因为它既不包含在聚合函数中,也不包含在GROUP BY子句中。
您应该能够将聚合函数与
大小写一起使用:

select er.eventid,
  max(case when left(er.RegionType_Code, 2) = 'SS' then r.region_name end) Region,
  max(case when left(er.RegionType_Code, 2) = 'SR' then r.region_name end) SubRegion
from Event_Region er
inner join Region r
  on er.regionid = r.regionid
group by er.eventid;

请参见

您应该能够将聚合函数与
案例一起使用:

select er.eventid,
  max(case when left(er.RegionType_Code, 2) = 'SS' then r.region_name end) Region,
  max(case when left(er.RegionType_Code, 2) = 'SR' then r.region_name end) SubRegion
from Event_Region er
inner join Region r
  on er.regionid = r.regionid
group by er.eventid;

请参见

,但我将向该查询添加更多表和字段。我无法将它们添加到GROUPBY子句,但我将向该查询添加更多表和字段。我无法将它们添加到GROUPBY子句中
SELECT      e.EventId,
            e.Event_Code AS Code,
            e.Event_Type_Description AS [Event],                
            e.Event_Name as Name,               
            max(case when left(er.RegionType_Code, 2) = 'SS' then r.region_name end) Region,
            max(case when left(er.RegionType_Code, 2) = 'SR' then r.region_name end) SubRegion      

FROM         dbo.Event e                 
             INNER JOIN Event_Region er ON er.EventId = e.EventId
             INNER JOIN Region r ON r.RegionId = er.RegionId 
group by e.EventId;
select er.eventid,
  max(case when left(er.RegionType_Code, 2) = 'SS' then r.region_name end) Region,
  max(case when left(er.RegionType_Code, 2) = 'SR' then r.region_name end) SubRegion
from Event_Region er
inner join Region r
  on er.regionid = r.regionid
group by er.eventid;