-1

我在论坛上搜索了 1 小时,没有找到类似的东西。

我有这个问题:我想比较两个列 ID 和 DATE,如果它们在两个表中相同,我想将表 2 中的数字放在它旁边。但如果不一样,我想在该日期填写年度配额。我在 Access 工作。

表格1

id|date|state_on_date 
1|30.12.2013|23 
1|31.12.2013|25 
1|1.1.2014|35
1|2.1.2014|12 
2|30.12.2013|34 
2|31.12.2013|65 
2|1.1.2014|43 

表2

id|date|year_quantity 
1|31.12.2013|100 
1|31.12.2014|150 
2|31.12.2013|200 
2|31.12.2014|300 

我想得到:

表3

id|date|state_on_date|year_quantity
1|30.12.2013|23|100
1|31.12.2013|25|100 
1|1.1.2014|35|150 
1|2.1.2014|12|150 
2|30.12.2013|34|200 
2|31.12.2013|65|200 
2|1.1.2014|43|300 

我尝试加入和阅读论坛,但没有找到解决方案。

4

1 回答 1

0

你在找这个吗?

SELECT id, date, state_on_date,
(
  SELECT TOP 1 year_quantity
    FROM table2
   WHERE id = t.id
     AND date >= t.date
   ORDER BY date
) AS year_quantity
  FROM table1 t

输出:

| 身份证 | 日期 | STATE_ON_DATE | 年_数量 |
|----|------------|---------------|--------------- |
| 1 | 2013-12-30 | 23 | 100 |
| 1 | 2013-12-31 | 25 | 100 |
| 1 | 2014-01-01 | 35 | 150 |
| 1 | 2014-01-02 | 12 | 150 |
| 2 | 2013-12-30 | 34 | 200 |
| 2 | 2013-12-31 | 65 | 200 |
| 2 | 2014-01-01 | 43 | 300 |

这是SQLFiddle演示它适用于 SQL Server,但在 MS Accesss 中应该可以正常工作。

于 2014-01-07T23:46:40.110 回答