我有一個像下面如何查詢表以獲取記錄的序列或鏈?
用戶可以將任務分配給其他用戶的表。其他用戶又可以將他/她的任務分配給另一個用戶等等。
用戶分配任務將由TASK_ASSIGN_USERID標識,接收任務的用戶將由TASK_RCV_USERID標識。
用戶可以將任務分配給由EFFECTIVE_DATE和EXPIRATION_DATE標識的特定時間段。
如果其他用戶在指定的持續時間內已有任務,則用戶不能將任務分配給其他用戶。
填滿當前日期的任務/記錄被視爲不活動/已完成的任務。
我想查詢表獲取當前活動任務給定TASK_ASSIGN_USERID。查詢應返回所請求的TASK_ASSIGN_USERID的記錄,如果TASK_RCV_USERID將任務分配給其他人,則該記錄爲另一記錄。反過來,如果TASK_RCV_USERID分配給另一個用戶,它應該返回另一條記錄,依此類推。
樣品
TASK_ASSIGN_USERID TASK_RCV_USERID
A B
B C
Çd
dË
....
....
我使用的DB2數據庫。誰能幫幫我嗎?目前我在代碼中使用for循環來檢索所有記錄。
如果這不能使用SQL,那麼我想使用PL/SQL。
任何人都可以幫我嗎?
更新時間:
TASK_ASSIGN_USERID | TASK_RCV_USER_ID | EFFECTIVE_DATE | EXPIRATION_DATE
A | B | 10-11-2016 | 17-11-2016
B | C | 11-11-2016 | 16-11-2016
A | B | 12-11-2016 | 20-11-2016
B | C | 15-11-2016 | 18-11-2016
C | D | 15-11-2016 | 18-11-2016
應該給我下面,當TASK_ASSIGN_USERID = A
TASK_ASSIGN_USERID | TASK_RCV_USER_ID | EFFECTIVE_DATE | EXPIRATION_DATE
A | B | 12-11-2016 | 20-11-2016
B | C | 15-11-2016 | 18-11-2016
C | D | 15-11-2016 | 18-11-2016
應該給我下面,當TASK_ASSIGN_USERID = B
TASK_ASSIGN_USERID | TASK_RCV_USER_ID | EFFECTIVE_DATE | EXPIRATION_DATE
B | C | 15-11-2016 | 18-11-2016
C | D | 15-11-2016 | 18-11-2016
應該給我下面,當TASK_ASSIGN_USERID = C
TASK_ASSIGN_USERID | TASK_RCV_USER_ID | EFFECTIVE_DATE | EXPIRATION_DATE
C | D | 15-11-2016 | 18-11-2016
首先,更正您的標記。 PLSQL是ORACLE的,而不是DB2。 – FDavidov
已更新。但是我在IBM看到一些關於plsql的文檔。 –
PL SQL中使用DB2太^^ http://www.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.apdv.plsql.doc/doc/c0053607.html – Esperento57