我有一个包含两个表的数据库 - SITE和EVENTS(这有点简化,但应该足以用于伪代码或任何语言的合理示例)。 SITE不是特别重要,除了它是此查询的主题,并且SITE可以是ACTIVE或INACTIVE,并且它们会发生事件。
EVENT表包含字段ID,SITEID,EVENTTYPE,EVENTDATE。常见的EVENTTYPE是“已激活”和“已停用”,但它们不是唯一可能发生的事件。 站点在其已激活和已停用事件之间被视为活动。站点可能已多次激活或停用,但每次停用都保证与初始激活相匹配。
对于每个实体,我希望能够在CSV文件中输出以下内容:
Site ID, Activated Date, Deactivated Date
同样,由于多次激活,网站可能会多次出现在文件中。或者,如果该网站仍处于活动状态,则只需阅读
Site ID, Activated Date
如果它在运行程序时处于活动状态。 什么是适当匹配这些时期的伪代码/代码?
答案 0 :(得分:0)
可能的答案想到 - 可能有更好的答案,我正在回答我自己的问题!
对于每个站点,按升序选择激活(x)和停用(y)列表。
由于停用必须具有匹配的激活,因此两个列表将形成自然(x,y)对,最后可能会悬空激活。