一对多连接多个记录作为重复列

时间:2015-09-30 14:37:41

标签: sql sql-server join one-to-many

使用MS SQL Server。我必须使用两个具有一对多关系的实体的列构建一个视图。主要实体是绩效报告。该表应该每行有一个性能报告。

相关实体是效果报告日志。每条记录包括一个问题和无限数量的输入。选择此结构是为了能够将某些问题与某些输入联系起来,而不是仅仅列出所有问题以及绩效报告实体本身的所有输入。每个绩效报告日志都通过查找链接到绩效报告。

我希望视图包含主要性能报告实体中的列,然后是所有相关性能报告日志中的列。因此,如果性能报告有三个日志,则所有三个日志中的列应包含在同一行中,而不是三行中。它们也应该在单独的列中,而不是像group_concat中那样合并为一个。

谢谢!

1 个答案:

答案 0 :(得分:1)

真的是#34;无限数量的输入"?如果这是夸大其词而您可能只有10-20个输入,则可以对要显示的每个输入列使用SELECT语句。即,

select performance.field1, performance.field2,  
(select field from inputs where problem='x' and inputs.id=performance.pk) as X, 
(select field from inputs where problem='y' and inputs.id=performance.pk) as Y, 
etc...
        from Performance