SQL事件行到列的时间戳记

时间:2018-07-03 00:05:54

标签: sql

第一篇文章!我是SQL新手,正在尝试将庞大的数据集查询为可管理的内容。

以下数据是博士办公室的数据。我有约会ID(不必关心患者的姓名),它可以具有一些不同的关联事件。我想按列将所有这些事件显示为时间戳记,如果有多个事件,则选择最近发生的事件(重新安排患者的时间)。

从那里,我将与datediff取得不同的细分,但是我不确定如何到达那里。我一直在搜索,必须使用错误的术语,因此,如果在其他地方都回答了此问题,请链接我,不要浪费您的时间来解释。

What I have and want

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

使用类似于以下模式的东西。

import threading
from threading import Thread
import time

def queryRepeatedly():
   Thread(target = foo).start()
   Thread(target = bar).start()

def foo():
    while True:
        try:
            print 'foo'
        except : #catch your error here
           pass # handle your error here
        finally:
           time.sleep(1)
def bar():
    While True:
        try:
           print 'bar'
        except : #catch your error here
           pass # handle your error here
        finally:
           time.sleep(3)

queryRepeatedly()

我选择了SQL Server SELECT s1.id "ID", s2.time "Scheduled", ... s6.time "Depart Office", datediff(minute, s3.time, s4.time) "Wait Time" FROM (SELECT DISTINCT id FROM elbat) s1 LEFT JOIN (SELECT id, time FROM elbat s2 WHERE event = 'Scheduled') s2 ON s2.id = s1.id ... LEFT JOIN (SELECT id, time FROM elbat WHERE event = 'Depart Office') s6 ON s6.id = s1.id; 语法。您可能需要为您的DBMS重写它。如果您有一个病人表,还应该用该病人表替换datediff()。您可能还需要提出一种用于患者多次约会的方法。包括例如连接中的日期(或可以区分不同约会的任何其他属性)。