【发布时间】:2020-02-27 17:44:03
【问题描述】:
我有三个表格,每个表格都有一个日期列(日期列是一个 INT 字段,需要保持这种状态)。我需要一个跨所有三个表的 UNION 以便我得到按升序排列的唯一日期列表,如下所示:
20040602
20051215
20060628
20100224
20100228
20100422
20100512
20100615
然后我需要在查询结果中添加一列,从每个日期中减去一列,并将其放在上方一行作为结束日期。基本上我需要以某种方式从开始日期生成结束日期,这就是我到目前为止得到的(不工作):
With Query1 As (
Select date_one As StartDate
From table_one
Union
Select date_two As StartDate
From table_two
Union
Select date_three e As StartDate
From table_three
Order By Date Asc
)
Select Query1.StartDate - 1 As EndDate
From Query1
非常感谢您的帮助!
【问题讨论】:
-
您确定该列是 Date 或 DateTime 数据类型,而不是 INT?
-
我认为您的查询甚至不会运行。您不能在 CTE 中使用
ORDER BY。 -
@HardCode 都是正确的,它是一个 int 字段,查询还没有工作。
-
-1 因为“他们每个人都有一个日期列”,然后是同一作者的评论说:“这是一个 int 字段”......有人为此发明了一个“编辑”选项!跨度>
-
@Luuk 你是对的,对不起。我已经通过帖子进行了编辑。
标签: sql sql-server tsql date union