访问选择查询以显示具有不同条件的相同字段

时间:2015-01-21 11:08:22

标签: sql ms-access

我在Access 2010中有一个选择查询,显示一个'级别名称'其中'期间ID'设置为1

如何在查询中添加另一个字段,该字段还显示Period ID设置为2的Level Name?

我希望他们俩在不同的行中彼此相邻

作为参考,我当前的查询如下:

SELECT 
    qryMaster.[First Name] & " " & qryMaster.[Last Name] AS ChildName, 
    qryMaster.LevelName
FROM 
    qryMaster
WHERE 
    (
        (qryMaster.ClassID = [Forms]![frmViewRecords_subject]![cboClass]) 
        AND   
        (qryMaster.SubjectID = [Forms]![frmViewRecords_subject]![cboSubject]) 
        AND  
        (qryMaster.PeriodID = 1)
    );

Pic of how my current Query looks in a subform

我在子表单中添加了当前查询的外观图片。我希望在九月旁边有一个新的,但是在不同的时期

2 个答案:

答案 0 :(得分:1)

WHERE子句始终适用于所有字段。因此,如果您需要两个不同的WHERE子句,则需要两个查询。

否则尝试

AND (qryMaster.PeriodID In(1,2))

答案 1 :(得分:0)

我知道这个帖子在五个月前是活跃的,但我有同样的问题,发现这个页面有谷歌。假设其他人也会到达这里,我将发布我在下面找到的两个解决方案。

SELECT t1.ChildName, t1.LevelName1, qryMaster.LevelName
FROM
    ((SELECT 
        qryMaster.[First Name] & " " & qryMaster.[Last Name] AS ChildName, 
        qryMaster.LevelName as LevelName1
    FROM qryMaster
    WHERE 
    (
        (qryMaster.ClassID = [Forms]![frmViewRecords_subject]![cboClass]) 
        AND   
        (qryMaster.SubjectID = [Forms]![frmViewRecords_subject]![cboSubject]) 
        AND  
        (qryMaster.PeriodID = 1)
    )) AS t1)
LEFT JOIN qryMaster
ON t1.ChildName = (qryMaster.[First Name] & " " & qryMaster.[Last Name])
WHERE (
    (qryMaster.ClassID = [Forms]![frmViewRecords_subject]![cboClass]) 
    AND   
    (qryMaster.SubjectID = [Forms]![frmViewRecords_subject]![cboSubject]) 
    AND  
    (qryMaster.PeriodID = 2)
)

由于我没有您的数据,我无法测试您的数据代码,因此我不确定" ON"子句就像这样。在我的情况下,我在那里有一些客户ID。

第二个:

SELECT t1.[First Name] & " " & t1.[Last Name] AS ChildName, t1.LevelName AS LevelName1, t2.levelName AS LevelName2
FROM qryMaster t1
    INNER JOIN qryMaster t2 ON t1.Childname=(t2.[First Name] & " " & t2.[Last Name])
WHERE (
    (t1.ClassID = [Forms]![frmViewRecords_subject]![cboClass]) AND  
    (t1.SubjectID = [Forms]![frmViewRecords_subject]![cboSubject]) AND
    (t1.PeriodID = 1) AND
    (t2.ClassID = [Forms]![frmViewRecords_subject]![cboClass]) AND  
    (t2.SubjectID = [Forms]![frmViewRecords_subject]![cboSubject]) AND
    (t2.PeriodID = 2)
)