我目前正在通过VBA做到这一点,但如果我能够在查询中获得一些帮助,它确实为我节省了大量时间。如何在sql查询中执行此步骤?
这是我正在处理的这份报告中需要做的5件事情之一。
表
我从3页不同的表
从tableB的阅读
TableA TableB TableC
字段从表A
OUT_ID
场
timestamp
event_type
worker
operator_id
new_date
个
字段从表C
worker
查询
Select
TableA.OUT_ID,
TableB.timestamp,
TableB.new_date,
TableB.event_type,
TableC.worker,
TableB.operator_id
From TableA left outer join
TableB
ON TableA.OUT_ID = TableB.OUT_ID and
TableB.event_type in ('WORKER_RET_CMT_CHANCE','RET_CHANCE','WORKER_STATUS_CHANCE') Left OUTER JOIN
TableC
ON TableB.worker = TableC.worker
where TableA.time_stamp > {?PickDate} //parameter in crystal report to pick date
and TableA.time_stamp < {?RestDate} //parameter in crystal report to pick date
order by TableA.OUT_ID, TableB.timestamp
这是我需要做的。
在Event_type
列,如果RET_CHANCE
下一行中有WORKER_RET_COMMENT_CHANCE
然后检查OUT_ID
是一样的,如果是相同的比是否TIMESTAMP
差小于10秒,如果不是从黄色的单元格复制WORKER
数这一切都是真的红细胞。
请参阅图像打击和附加excel文件的示例。 Download excel file via dropbox
我把它的恩赐或贝宝聘用,但我需要的不仅仅是1步以上。如果有人有兴趣,请通过电子邮件与我联系 – Mowgli
你最好正式定义这些记录的顺序,因为没有它,“下一行”是毫无意义的。 –
@DavidAldridge很少有'WORKER_ERT_COMMENT_CHANCE'将在最上面的一行,'RET_CHANCE'将会在下一行,如果这种情况比我需要执行相同的步骤。回到你的问题,它是由'TableA.OUT_ID','TableA .timestamp' – Mowgli