Sql server 使用subselect向视图添加更多列

Sql server 使用subselect向视图添加更多列,sql-server,view,sql-subselect,Sql Server,View,Sql Subselect,使用Microsoft SQL Server 2012,我试图创建一个新视图,当描述匹配时,该视图将返回一行的实际开始和结束 我有一张像这样的桌子 +----+-------+-------+-----+ | ID | desc | start | end | +----+-------+-------+-----+ | 1 | line1 | 0 | 100 | | 2 | line2 | 0 | 100 | | 3 | line2 | 101 | 200 |

使用Microsoft SQL Server 2012,我试图创建一个新视图,当描述匹配时,该视图将返回一行的实际开始和结束

我有一张像这样的桌子

+----+-------+-------+-----+
| ID | desc  | start | end | 
+----+-------+-------+-----+
|  1 | line1 |     0 | 100 |
|  2 | line2 |     0 | 100 |
|  3 | line2 |   101 | 200 | 
+----+-------+-------+-----+
我想再添加两列,这样当desc匹配时,它将从ID 2返回0,从ID 3返回200,如下所示:

+----+-------+-------+-----+------------+----------+
| ID | desc  | start | end | real_start | real_end |
+----+-------+-------+-----+------------+----------+
|  1 | line1 |     0 | 100 |          0 |      100 |
|  2 | line2 |     0 | 100 |          0 |      200 |
|  3 | line2 |   101 | 200 |          0 |      200 |
+----+-------+-------+-----+------------+----------+
到目前为止,我的语法是:

CREATE VIEW tableview1 
AS 
     SELECT 
         ID, desc,
         start, end,
         (???) as real_start,
         (???) as real_end 
     FROM 
         linetable 
     WHERE 
         condition;
当描述匹配时,我不知道如何对这两行进行分组和比较,并从中选择最低的一行。我会自己玩并更新线程


非常感谢

对于
desc
我认为这会起作用,有人能确认吗

    CREATE VIEW tableview1 
AS 
     select 
     t1.ID, t1.desc,
     t1.start, t1.end,
     (select min(start)
        from linetable z
        where z.desc = t1.desc) as real_start,
     (select min(end)
        from linetable z
        where z.desc = t1.desc) as real_end
     from    
     (SELECT 
         ID, desc,
         start, end,
     FROM 
         linetable 
     WHERE 
         condition) as t1

请不要张贴代码或数据的图片。没有人可以复制和粘贴来帮助您。根据需要编辑您的问题。也,