我需要找到pedimento的原始日期(CUSTOMS文檔) 我有2個表DS_551(詳細信息表)和DS_701糾正的pedimentos表。搜索原始日期 - MYSQL
而表的結構與此類似
DS_551
- Patente
- Pedimento
- 阿杜瓦納斯
- 日期星帕
- 值
DS_701
- Patente
- Pedimento
- 阿杜瓦納斯
- 日期星帕
- PatenteAnterior
- PedimentoAnterior
- AduanaAnterior
- FechaAnterior
,我需要找到每個實例的原始日期:
格式:(Patente-Pedimento - 海關大樓)
- 原始pedimento:4020-8000001-400
- 1整頓:4020-8009005-400
- 第2次整改:4020-9001003-400
在所有的情況下,我會在我的桌子上(DS_551)只有在這種情況下第二次(4020-9001003-400)的最後整改,但我需要更新與原pedimento日期又名fecha(4020-8000001-在我的表400)
DS_701行類似於此
Patente|Pedimento|Aduana|Fecha Pago|PatenteAnterior|PedimentoAnterior|AduanaAnterior|FechaAnterior|
4020|9001003|400|2017-11-17|4020|8009005|400|2017-10-17|
4020|8009005|400|2017-10-17|4020|8000001|400|2016-01-01|
在上面的第一行引用到第二整流和previus文檔的數據的例子(第1整流)和第二行引用第一次整改的數據和表格中的原始文件,結尾處的詞「前面」引用了以前的文件數據,所以只有數據4020 | 90010 03 | 400我需要找到4020文檔的日期(出生日期)| 8000001 | 400
SELECT * FROM DS_551 WHERE CONCAT(Patente, Pedimento, Aduana) IN (SELECT CONCAT(Patente, Pedimento, Aduana) FROM DS_701)
上面的查詢將返回我需要找到原始日期的文件,或有一個文件列表整改。
給出了上面的文件列表我如何循環查找每個項目以找到它們的原始日期?每份文件可以有無數次的更正。
我在MySQL中使用存儲過程,這樣做
小提琴:http://sqlfiddle.com/#!9/64f0a5/12
它不能直接這樣,因爲表中有很多其他文檔的歷史記錄(大約200k +)我需要對實際文檔的第一次修訂,我們需要按照列表中每個文檔的歷史記錄來獲取每個文檔的原始日期。 –
更新了SQL。假設最小的PedimentoAnterior是原始文檔,則返回以下內容:http://sqlfiddle.com/#!9/64f0a5/45 – PatrickSJ