【问题标题】:Date SQL Server joinSQL Server 加入日期
【发布时间】:2015-08-01 17:26:45
【问题描述】:

我有一张记录数据激活和终止的表格。 我只从服务器得到subscriberimsidatepackage statusdata package。现在我需要加入激活和终止的记录。

我不知道从哪里开始或如何实现。

谁能帮我解决这个问题?

这个 http://i.stack.imgur.com/HoRc0.png

应该变成这个。 http://i.stack.imgur.com/Ue1mA.png

【问题讨论】:

  • 你说的加入是什么意思?激活和终止记录。
  • 如果您使用的是 SQL Server 2012 或更高版本,请查看 LAG()LEAD() 分析函数。如果你不在 2012 年,那么things get complicated
  • 不,我使用的是 SQL Server 2008,确​​实我可以使用这些功能

标签: sql sql-server join


【解决方案1】:

编辑答案在这里:

SELECT t1.subscriber, t1.imsi, t1.pakket, t1.datum, t1.data_pakket, t1.pakket_status, 
(SELECT min(datum) FROM mytable t2
 WHERE t2.datum > t1.datum
AND pakket_status='TERMINATED') AS end_date
FROM mytable t1
WHERE t1.pakket_status='ACTIVATED';

用于证明的 SQLFIDDLE:http://sqlfiddle.com/#!6/d4f64/12

【讨论】:

  • 我正在研究它,但似乎 sqlfiddle 已关闭或其他什么
  • 我刚刚解决了你的问题,不需要:D
  • 刚刚将我的查询添加到您的小提琴中,它似乎有效:sqlfiddle.com/#!3/be367/3
  • @Wishaal 让我知道它是否对您的实际数据有效
  • 我还需要做一件事。我在自动递增的表中放置了 id 字段。如何获取激活和终止行的 id?
猜你喜欢
  • 2017-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多