Sql server 使用subselect向视图添加更多列
使用Microsoft SQL Server 2012,我试图创建一个新视图,当描述匹配时,该视图将返回一行的实际开始和结束 我有一张像这样的桌子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 |
+----+-------+-------+-----+
| 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
请不要张贴代码或数据的图片。没有人可以复制和粘贴来帮助您。根据需要编辑您的问题。也,