【问题标题】:Merge two or more rows in SQL Server 2000在 SQL Server 2000 中合并两行或多行
【发布时间】:2011-08-10 02:57:59
【问题描述】:

假设我的表包含以下信息:

row | ID  |       date1          |        date2            | place   | value
--------------------------------------------------------------------------
1   |  1  |  2011-01-23 05:33:21 |    2011-01-23 06:43:10  |    A    |     5
2   |  1  |  2011-01-23 06:44:21 |    2011-01-23 07:13:28  |    A    |     4
3   |  1  |  2011-01-23 07:14:21 |    2011-01-23 07:27:28  |    A    |     4
4   |  1  |  2011-01-23 08:30:11 |    2011-01-23 09:56:45  |    A    |     6
5   |  1  |  2011-01-23 09:58:21 |    2011-01-23 10:43:26  |    B    |     8
6   |  2  |  2011-01-23 05:33:21 |    2011-01-23 06:43:21  |    A    |     3

我想像下面的第 1 行和第 2 行那样合并。(上面的表格中有很多行)条件是DATEDIFF(minute, row1.date2, row2.date1) < 10 and row1.place = row2.place

row | ID  |       date1          |        date2          |  place   | value
=======================================================================
1   |  1  |  2011-01-23 05:33:21 |   2011-01-23 07:27:28 |     A    |    13
2   |  1  |  2011-01-23 08:30:11 |   2011-01-23 09:56:45 |     A    |    6
3   |  1  |  2011-01-23 09:58:21 |   2011-01-23 10:43:26 |     B    |    8
4   |  2  |  2011-01-23 05:33:21 |   2011-01-23 06:43:21 |     A    |    3

请帮我从我的表格中选择上述结果。

提前致谢。

【问题讨论】:

  • 请插入管道“|”在您的数据中,以便更容易阅读并将每行数据放在自己的行中。
  • this 是您的问题吗?

标签: sql sql-server database sql-server-2000


【解决方案1】:
insert into table
   select 
      row, id, date1, date2, place, sum(value)
   from table
   where (your date diff condition)
   group by row, id, date1, date2, place

我认为这应该可行.. :)

【讨论】:

  • 感谢您的回复,但没有行列,我想从表中选择这些值进行查看。我想根据我的情况合并两行,并且 date2 应该像我上面提到的那样改变以及值。
  • 如果您发布代码、XML 或数据示例,在文本编辑器中突出显示这些行,然后单击编辑器上的“代码示例”按钮 ({ })工具栏以很好地格式化和语法突出显示它!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-09-24
  • 1970-01-01
  • 1970-01-01
  • 2011-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多