我搜索了论坛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
table2
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
我尝试了加入和阅读论坛,但没有找到解决方案。
答案 0 :(得分: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
输出:
| ID | DATE | STATE_ON_DATE | YEAR_QUANTITY | |----|------------|---------------|---------------| | 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 Access中应该可以正常工作。