求SQL文(难啊...)
表结构如下
id updDate updId amount
有以下数据
**************************************************************
001 2004/09/29 A 100 ---------------1
001 2004/09/30 B 110 ---------------2
001 2004/10/02 B 140 ---------------3
001 2004/10/02 A 110 ---------------4
001 2004/10/03 A 110 ---------------5
002 2004/10/01 B 200 ---------------6
002 2004/10/02 A 200 ---------------7
002 2004/10/02 A 200 ---------------8
002 2004/10/03 B 200 ---------------9
003 2004/09/29 B 300 ---------------10
003 2004/10/02 A 320 ---------------11
003 2004/10/02 A 310 ---------------12
003 2004/10/02 A 320 ---------------13
003 2004/10/03 B 320 ---------------14
**************************************************************
当传入日期为"2004/10/01"时,先取得用来比较的数据:即传入日期之前(包括传入日期)的同一id的最后日期的数据
(一)对于id为"001"的数据,其用来比较的数据是
----->001 2004/09/30 B 110 ---------------2
该数据和该id的最后一条数据,即
----->001 2004/10/03 A 110 ---------------5
比较,两者amount相同,但由于在所传入的日期("2004/10/01")之后有过更新操作,即
----->001 2004/10/02 B 140 ---------------3
所以对于id为"001"的数据,所需要抽出的数据是
----->001 2004/10/02 A 110 ---------------4
(二)对于id为"002"的数据,其用来比较的数据是
----->002 2004/10/01 B 200 ---------------6
该数据和该id的最后一条数据,即
----->002 2004/10/03 B 200 ---------------9
比较,两者amount相同,而且在所传入的日期("2004/10/01")之后有过更新操作,所以对于id为"002"的数据没有需要抽出的数据
(三)对于id为"003"的数据,其用来比较的数据是
----->003 2004/09/29 B 300 ---------------10
该数据和该id的最后一条数据,即
----->003 2004/10/03 B 320 ---------------14
比较,两者amount不同,所以对于id为"003"的数据,所需要抽出的数据是
----->003 2004/10/02 A 320 ---------------13
(*并非是编号为14的数据)
综上,对于传入日期为"2004/10/01"的情况,
所需抽出的数据是
001 2004/10/02 A 110 ---------------4
003 2004/10/02 A 320 ---------------13
逻辑上还有其他的处理方法,最终目的就是从表中抽出符合条件的数据(对于上述例子来说是数据4和13).
请怎样用SQL文来实现?(是在存储过程中进行处理)
(另:真实数据表中的数据,没有经过排序)