我在SQL中有一个审计表,它只包含一些叙述,日期戳和一个将叙述链接到特定对象的linkid。阅读此表时,我会按对象ID搜索,然后按日期排序叙述,以了解发生的情况。
显然这种方法不能以编程方式工作,所以我想知道如何构建逻辑来识别特定事件。
例如,单个对象可能有多个叙述,表示“收到新主持人......”#。它可能有多个叙述,表示“匹配对象xxx ......”#。
我想以一种方式对这个表进行分区(?),以便我可以看到第一个匹配的对象...'在第n次接收新的...'之后的时间记录是。
这可能吗?
TradeRef - 独特的PK和无关的
TradeId - 我将使用的分组交易ID
AuditDate
AuditNarrative
以下是一个特定交易ID的数据示例。我已经展示了日期和叙述,因此您可以了解正在发生的事情。把这个链接回到我的问题 - 我想找出第二场比赛之后发生的第一场比赛......收到新的主办合同'但忽略叙述的结尾是PHONE_CONFIRMED。因此,简单地通过记录阅读我想要的记录是匹配事件......'记录于29/09/15 15:09:23。请注意,这是一个简单的例子,还有其他交易,其中包含更多匹配事件和新的主机合约!
13/07/15 14:49:00收到新的主持人合同
13/07/15 15:22:39移动到优先级'主机无与伦比'队列
13/07/15 19:17:44收到新的交易对手合约
13/07/15 19:21:04自动完美匹配C123
13/07/15 19:21:04自动完美匹配H123
13/07/15 19:21:05比赛由东道主贸易H123和交易对手C123 C123产生的事件
12/08/15 15:36:18自动不匹配请求
12/08/15 15:36:18为主机交易产生无与伦比的事件:H123和交易对手交易:C123
12/08/15 15:36:18自动不匹配请求
12/08/15 15:36:18已取消处理
12/08/15 15:42:25移动到优先级'主机无与伦比'队列
12/08/15 16:00:44 Cpty今天取消了他们的交易。通过电子邮件发送詹姆斯纽曼建议
12/08/15 16:23:23收到取消的主办合同
12/08/15 16:23:23处理取消
12/08/15 16:24:04收到新的主办合同
12/08/15 16:57:24移动到优先级'主机无与伦比的'队列
17/08/15 21:57:58为主机交易H123生成匹配事件PHONE_CONFIRMED
17/08/15 21:57:58手动VCO x
2015年8月17日21:57:58数学联系方式:x联系方式编号:x联系日期:x我们的电话号码:x
17/08/15 22:40:14手动无与伦比的
17/08/15 22:40:14为主机交易产生无与伦比的事件:H123和交易对手交易:PHONE_CONFIRMED
17/08/15 22:42:21移动到优先级'主机无与伦比'队列
10/09/15 22:01:53为主机交易生成的匹配事件H123 PHONE_CONFIRMED
10/09/15 22:01:53手动VCO x
10/09/15 22:01:53通过电子邮件确认的肯定联系方式:x联系方式编号:x联系日期:x我们的电话号码:x
29/09/15 15:09:23为主机交易H123生成的匹配事件确认已收到
29/09/15 15:09:23手动交易对手视线配对确认已收到
答案 0 :(得分:0)
以下查询将根据链接的对象ID为您分区数据。
SELECT TradeId ,
AuditNarrative ,
AuditDate ,
RANK() OVER ( PARTITION BY TradeId, AuditNarrative ORDER BY AuditDate ASC ) Ranking
FROM dbo.Audit