我目前正在通過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