【发布时间】:2013-05-21 13:46:58
【问题描述】:
我目前正在通过 VBA 做这个 excel,但如果我能在查询中得到一些帮助,那真的可以为我节省很多时间。
这是我正在处理的这份报告需要做的 5 件事中的 1 件。
表格
我正在阅读 3 个不同的表格
TableA TableB TableC
tableA中的字段
OUT_ID
tableB中的字段
timestamp
event_type
worker
operator_id
new_date
tableC中的字段
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 秒,如果所有这些都是真的,则复制@ 987654333@从黄色单元格到红色单元格的数字。
请参阅图片和附加的 excel 文件以获取示例。 Download excel file via dropbox
【问题讨论】:
-
我会将它用于赏金或 Paypal 租用,但我需要的不仅仅是 1 个步骤。如果有人有兴趣,请通过电子邮件与我联系
-
你最好正式定义这些记录的顺序,因为没有它“下一行”是没有意义的。
-
@DavidAldridge 很少
WORKER_ERT_COMMENT_CHANCE将在第一行,RET_CHANCE将在下一行,如果这种情况比我需要执行相同的步骤。回到你的问题,它是由@订购987654336@,TableA.timestamp -
这不足以定义为什么 RET_CHANCE 是“之前” WORKER_RET_COMMENT_CHANCE。
-
您是说根据您在查询中指定的
ORDER BY子句,“下一行”的意思不是下一行吗?或者我们可以只看timestamp为特定的out_id排序的下一行吗?