【发布时间】:2017-04-26 08:51:22
【问题描述】:
这背后的逻辑是如果同一位置的 Ser_request 编号相同,则考虑 Max“Power before downtime”的行。需要更新的行是列名ID最小值
我需要创建三个新列 Adj Start date、Adj end date、Adj DC power 并插入相应列中的数据
-
downtime_start =调整开始日期
-downtime_end = 调整结束日期
-power_before_downtime = 调整直流电源
我尝试这样做,但通过对相同的值进行分组,我无法找到第一行。
我使用的是 sql server 2012
这是我迄今为止尝试过的:
select location,downtime_start , count(*)
from dbo.TB1
group by location,downtime_start , count(*)
having count(*)>1
在此查询之后,我得到了 TB1 的结果,但我不知道如何对它们进行分组并将值插入到相应的列中。
感谢任何帮助
谢谢
ID | location | downtime_start | downtime_end | power_before_downtime | power_after_downtime | creation_time | end_time | ser_request
1 | xyz.a | 3/8/2017 2:00:00 PM | 3/10/2017 8:00:00 AM | 14.16 | 13.67 | 3/8/2017 3:25:37 PM | 3/8/2017 6:41:59 PM | 0003
2 | xyz.a | 3/8/2017 2:00:00 PM | 3/10/2017 8:00:00 AM | 14.16 | 13.67 | 3/8/2017 3:25:37 PM | 3/8/2017 6:41:59 PM | 0003
3 | xyz.a | 3/8/2017 2:00:00 PM | 3/10/2017 8:00:00 AM | 14.16 | 13.67 | 3/8/2017 3:25:37 PM | 3/8/2017 6:41:59 PM | 0003
输出表应该是这样的:
ID | location | downtime_start | downtime_end | power_before_downtime| power_after_downtime| creation_time | end_time
|ser_request | Adj Start date | Adj end date | Adj DC power
1 | xyz.a | 3/8/2017 2:00:00 PM | 3/10/2017 8:00:00 AM | 14.16 | 13.67 |3/8/2017 3:25:37 PM | 3/8/2017 6:41:59 PM| 0003 | 3/8/2017 2:00:00 PM | 3/10/2017 8:00:00 AM | 14.16
2 | xyz.a | 3/8/2017 2:00:00 PM | 3/10/2017 8:00:00 AM | 14.16
| 13.67 | 2017 年 3 月 8 日下午 3:25:37 |2017 年 3 月 8 日下午 6:41:59 | 0003
| 0 | 0 | 0
3 | xyz.a | 3/8/2017 2:00:00 PM| 3/10/2017 8:00:00 AM | 14.16
| 13.67 2017 年 3 月 8 日下午 3:25:37 | 2017 年 3 月 8 日下午 6:41:59| 0003| 0 | 0 | 0
【问题讨论】:
-
您使用的是 MySQL 还是 MS SQL Server? (不要标记未涉及的产品。)
-
我看不懂那些图片的小文字。 (这里的大多数人想要格式化的文本,而不是图像......)
-
我正在使用 MS SQL 2010
-
请edit您的问题包括样本数据。它在 cmets 中是不可读的。 (理想情况下,最好使用带有
CREATE TABLE和INSERT语句的代码块。 -
@Damien_The_Unbeliever:我已经在问题中添加了数据
标签: sql sql-server