我试图在访问查询中根据表中的2个其他列(本例中为semester和student_name)的值组合两个列(来自不同的表),例如,如果我有以下内容:
和
如何进行查询以获得最终结果:
其中some_data的第三和第四学期(仅第三和第四)部分已基于student_name组合(可能有一些名称在一个表中,但在另一个表中没有,等等,尽管没有显示在这些例子)。我目前对访问查询不是很熟悉,所以我很难完成这个。非常感谢任何帮助,谢谢!
答案 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,在这种情况下它使用第二个参数中的值。