小编Dan*_*ock的帖子

将开始和结束列合并为一列

我已经搜索了几个星期的高低,现在试图找到我的问题的解决方案.

我的问题如下:

A有一张桌子,上面有车辆遥测提供者的起点和终点坐标和日期.

我需要将这些合并到一个列中,以便我们的报告解决方案能够绘制它们.

一些示例数据如下:

DECLARE @TblVar AS TABLE([ServiceID] INT
                    ,[StartDate] DATETIME
                    ,[StartLocation] VARCHAR(255)
                    ,[StartLat] FLOAT
                    ,[StartLong] FLOAT
                    ,[EndDate] DATETIME
                    ,[EndLocation] VARCHAR(255)
                    ,[EndLat] FLOAT
                    ,[EndLong] FLOAT);
INSERT INTO @TblVar

VALUES (48322, '2016-11-28 05:38:37.000','Weaver Road,Leicester',52.5753273,-1.306842,'2016-11-28 05:40:02.000','Earl Street,Leicester',52.5781,-1.3048711)
      ,(48322, '2016-11-28 05:44:05.000','Earl Street,Leicester',52.5780996,-1.3048768,'2016-11-28 05:53:52.000','Arbor Road,Leicester',52.5533448,-1.2349645)
      ,(48322, '2016-11-28 09:14:25.000','Arbor Road,Leicester',52.5533833,-1.2349445,'2016-11-28 09:15:54.000','Coventry Road,Leicester',52.5522865,-1.2370495)  
      ,(48322, '2016-11-28 09:16:05.000','Coventry Road,Leicester',52.552292,-1.2370598,'2016-11-28 09:20:41.000','Arbor Road,Leicester',52.553338,-1.2352033)    
      ,(48322, '2016-11-28 13:34:36.000','Arbor Road,Leicester',52.553388,-1.2352651,'2016-11-28 13:53:29.000','Narborough Road South,Leicester',52.597422,-1.1832976)      
      ,(48322, '2016-11-28 13:55:36.000','Narborough Road South,Leicester',52.597352,-1.183299,'2016-11-28 13:58:51.000','Hazel Drive,Leicester',52.6020946,-1.1760238)
      ,(48322, '2016-11-28 14:11:53.000','Hazel Drive,Leicester',52.6020853,-1.1760053,'2016-11-28 14:24:40.000','Arbor Road,Leicester',52.5533118,-1.2352118)
      ,(48322, '2016-11-28 14:29:48.000','Arbor Road,Leicester',52.5532741,-1.2352471,'2016-11-28 14:30:39.000','Coventry Road,Leicester',52.552955,-1.2363475) …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server sql-server-2014

5
推荐指数
1
解决办法
96
查看次数

将时间频率拆分为行

我试图将具有开始时间,结束时间,频率和持续时间的时间频率分成不同的行.以下是一些示例数据:

+------+------------+----------+-----------------+---------------+
| Name | Start_Time | End_Time | Frequency_Hours | Duration_Mins |
+------+------------+----------+-----------------+---------------+
| A    | 08:00:00   | 18:00:00 |               2 |             2 |
| B    | 00:00:00   | 23:59:59 |               1 |             5 |
| C    | 00:00:00   | 23:59:59 |               4 |            15 |
+------+------------+----------+-----------------+---------------+
Run Code Online (Sandbox Code Playgroud)

可以使用以下查询创建:

DECLARE @Tmp AS TABLE(Name VARCHAR(128)
                     ,Start_Time VARCHAR(8)
                     ,End_Time VARCHAR(8)
                     ,Frequency_Hours INT
                     ,Duration_Mins INT)

INSERT INTO @Tmp VALUES ('A','08:00:00', '18:00:00', 2,2)
                       ,('B','00:00:00', '23:59:59', 1,5)
                       ,('C','00:00:00', '23:59:59', 4,15)
Run Code Online (Sandbox Code Playgroud)

这是我想要的输出(然后我将使用它来驱动甘特图可视化):

+------+------------+----------+
| Name | …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server

2
推荐指数
1
解决办法
426
查看次数

标签 统计

sql-server ×2

t-sql ×2

sql-server-2014 ×1