【发布时间】:2011-02-02 10:59:37
【问题描述】:
编辑:这不是动态输出,输出视图结构是固定的。
我正在尝试创建一个 SQL Server 视图,该视图为每个用户显示单个固定列行,并将关联的一对多表展平到该行中。
虽然关联表具有一对多关系,但输出表结构仅限于该表的 4 个元素。
我的表结构是这样的:
User (Id, FirstName, LastName)
Assessment (Id, Date, Location, User_Id)
Topics (Id, Topic, Assessment_Id)
评估通过 User_Id(一 2 一)加入到用户,主题通过 Assessment_Id 加入评估。
所以,如果我有三个评估主题,我希望视图看起来像:
User_Id | FirstName | LastName | Date | Location | Topic1 | Topic2 | Topic3 | Topic4 |
1 | dave | toby | 2/2/11 | In situ | apples | pears | lemons | NULL |
我当前的 SQL 如下所示:
SELECT User.Id, User.FirstName, User.LastName, Assessment.Date, Assessment.Location, Topic.Topic
FROM User LEFT OUTER JOIN
Assessment INNER JOIN
Topic ON Assessment.Id = Topic.Assessment_Id ON
User.Id = Assessment.User_Id
但这会为每个关注点返回一行 - 它不会将它们压缩到一行。我玩过几个不同的连接,但无法获得我想要的行为。
是否可以在视图中执行此操作?
我需要做什么才能实现它??
谢谢!
【问题讨论】:
标签: sql sql-server sql-server-2005 join