如何在访问中组合这两列

时间:2013-02-11 16:18:31

标签: ms-access ms-access-2010

我试图在访问查询中根据表中的2个其他列(本例中为semester和student_name)的值组合两个列(来自不同的表),例如,如果我有以下内容: enter image description here

enter image description here

如何进行查询以获得最终结果:

enter image description here

其中some_data的第三和第四学期(仅第三和第四)部分已基于student_name组合(可能有一些名称在一个表中,但在另一个表中没有,等等,尽管没有显示在这些例子)。我目前对访问查询不是很熟悉,所以我很难完成这个。非常感谢任何帮助,谢谢!

2 个答案:

答案 0 :(得分:1)

类似

select semester, student_name, max(some_data) from
(select semester, student_name, some_data from sheet1
union all
select semester, student_name, some_data from sheet2)
group by semester, student_name

答案 1 :(得分:1)

UPDATE Sheet1 INNER JOIN Sheet2 
ON Sheet1.semester = Sheet2.semester
And  Sheet1.Student_name = Sheet2.Student_name
SET Sheet2.Some_data = Sheet1.Some_Data
Where Sheet1.semester in (3,4)

如果您只想在应用结果之前查看结果,可以点击Datasheet View按钮而不是Run按钮。

如果你想让你的两张桌子完好无损并且只有一个视图你可以这样做:

Select Sheet2.semester
, Sheet2.student_name
, Nz(Sheet2.some_data,Sheet1.some_data)
From Sheet1 INNER JOIN Sheet2 
ON Sheet1.semester = Sheet2.semester
And  Sheet1.Student_name = Sheet2.Student_name

带有可选的where子句

Where Sheet1.semester in (3,4)

此处Nz函数使用第一个参数中的数据,除非该参数为null,在这种情况下它使用第二个参数中的值。