【问题标题】:Min and max date between rows - grouping row行之间的最小和最大日期 - 分组行
【发布时间】:2016-06-15 20:04:13
【问题描述】:

如图所示,我有一个表“A”,我需要创建一个视图来将数据分组为表“B”。 有什么建议?我会感谢每一个输入以提高我的技能 谢谢

table

【问题讨论】:

  • 这不是代码编写服务。您展示自己为尝试此问题所做的工作,我们(也许)会尝试帮助解决它。
  • 提供您的表架构。 “HOUR”列不是真正的 NVARCHAR 数据类型吗?

标签: sql tsql sql-server-2005 datediff


【解决方案1】:

应该这样做:

SELECT [USER],
      [ACTIVITY],
      MIN([HOUR]) AS [START],
      MAX([HOUR]) AS [END],
      RIGHT('0'+CAST(DATEDIFF(SECOND, CAST(MIN([HOUR]) AS TIME), CAST(MAX([HOUR]) AS TIME)) / 3600 AS VARCHAR), 2)+':'+RIGHT('0'+CAST((DATEDIFF(SECOND, CAST(MIN([HOUR]) AS TIME), CAST(MAX([HOUR]) AS TIME)) / 60) % 60 AS VARCHAR), 2) AS [MINUTE]
FROM   TAB_A
GROUP BY [USER],
        [ACTIVITY];

【讨论】:

  • 谢谢,我也是这样做的,但这不是我需要的结果,因为分组活动是错误的方式,只有一次。我应该为每个间隔活动设置最小和最大日期。 :-(
猜你喜欢
  • 1970-01-01
  • 2016-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-24
  • 1970-01-01
  • 2017-09-04
  • 1970-01-01
相关资源
最近更新 更多