我有一张这样的表(ldate d,amt n(7),rdate d)。字段是贷款日期、金额、发布日期。
在这里,一条记录被认为是未决的,它的发布日期为空。例如,
SELECT SUM(AMT) FROM TABLE WHERE RDATE = {}
给出截至日期的净未决金额
在计算给定日期的待处理金额时,如果记录的发布日期为空或发布晚于给定日期,则该记录被视为待处理!因此,要计算 {2011-10-09} 的待处理金额,查询是:
SELECT SUM(AMT) FROM TABLE WHERE LDATE <= {2011-10-09} AND (RDATE > {2011-10-09} OR RDATE = {})
现在,我将如何从上表中逐年计算待处理金额?我期望的结果是这样的:
Year PendingAmt
2009 1,15,000
2010 1,38,000
2011 1,71,000
注意:实际表中还有许多其他字段。为简洁起见,我在这里只提到了重要的字段。RDBMS 使用 Microsoft Visual Foxpro 9.0
更新:添加了示例数据
CREATE TABLE VB(LDATE DATE, AMT NUMERIC(7), RDATE DATE);
INSERT INTO VB VALUES('2010-01-05', 12000, NULL);
INSERT INTO VB VALUES('2010-03-15', 25000, '2010-04-19');
INSERT INTO VB VALUES('2010-05-21', 31000, NULL);
INSERT INTO VB VALUES('2010-07-03', 58000, '2010-07-11');
INSERT INTO VB VALUES('2010-09-10', 47000, NULL);
INSERT INTO VB VALUES('2010-11-30', 63000, '2011-01-09');
INSERT INTO VB VALUES('2011-02-15', 21000, NULL);
INSERT INTO VB VALUES('2011-04-05', 52000, '2011-04-11');
INSERT INTO VB VALUES('2011-06-03', 13000, NULL);
INSERT INTO VB VALUES('2011-08-21', 85000, '2011-09-19');
INSERT INTO VB VALUES('2011-10-30', 74000, '2012-02-10');
INSERT INTO VB VALUES('2011-12-10', 36000, '2012-03-29');
INSERT INTO VB VALUES('2012-01-05', 15000, NULL);
INSERT INTO VB VALUES('2012-02-15', 25000, NULL);
INSERT INTO VB VALUES('2012-03-15', 35000, NULL);
INSERT INTO VB VALUES('2012-10-30', 30000, '2012-11-21');
INSERT INTO VB VALUES('2012-11-30', 31000, '2012-12-31');
INSERT INTO VB VALUES('2012-12-10', 12000, NULL);
谢谢