如果有人可以提供有关MS-Access SQL Full Outer Join的建议

时间:2015-09-09 18:00:47

标签: ms-access

我很难用这个,不知道是否可能,但似乎应该如此。

所以我有两张桌子,“INTERVIEW”和“INTERVIEWEE”

他们都有两个共同的列: INTERVIWEE_NUMBER& INTERVIEW_PROJECT

我正在尝试显示一份受访者名单以及需要接受采访的人员。

我用两个单独的查询填充了两个表中所需的信息。

第一个:

SELECT INTERVIEW_NUMBER,INTERVIEW_LNAME,INTERVIEW_FNAME,INTERVIEWEE_PROJECT
FROM INTERVIEWEE
WHERE INTERVIEWEE_PROJECT IN ('LGBT','LGBTQ Civil Rights Movement');

SELECT INTERVIEWEE_NUMBER,INTERVIEW_PROJECT,INTERVIEW STATUS
FROM INTERVIEW
WHERE INTERVIEW_PROJECT IN ('LGBT','LGBTQ Civil Rights Movement') AND INTERVIEW_STATUS IN ('completed','processing');

我想将这两个查询中的信息加入到两个单独的查询中,这些查询显示已经访问过谁以及谁没有访问过的所有“WHERE”信息。

我认为一个Full Outer连接和一个Inner Join就可以了。但我无法正确查询

2 个答案:

答案 0 :(得分:0)

这就是你需要的:

            create table #INTERVIEW(
            INTERVIWEE_NUMBER INT
            ,INTERVIEW_PROJECT NVARCHAR(50)
            ,INTERVIEW_STATUS NVARCHAR(50)
            ,NAME NVARCHAR(50)
            )

            create table #INTERVIEWEE(
            INTERVIWEE_NUMBER INT
            ,INTERVIEW_PROJECT NVARCHAR(50)

            )

            INSERT into  #INTERVIEW
            SELECT 1,'LGBT','COMPLETED','A'
            UNION ALL
            SELECT 2,'LGBTQ Civil Rights Movement','COMPLETED','B'

            INSERT into #INTERVIEWEE
            SELECT 1,'LGBT'
            UNION ALL
            SELECT 2,'LGBTQ Civil Rights Movement'

            SELECT 
                I.INTERVIWEE_NUMBER,
                NAME,
                I.INTERVIEW_PROJECT,
                INTERVIEW_STATUS,
                CASE WHEN INTERVIEW_STATUS IN ('completed','processing') 
                  THEN 1 ELSE 0 END AS IsInterviewed
            FROM 
                #INTERVIEWEE I INNER JOIN
                #INTERVIEW w ON
                I.INTERVIWEE_NUMBER = w.INTERVIWEE_NUMBER AND
                I.INTERVIEW_PROJECT = w.INTERVIEW_PROJECT
            WHERE 
                I.INTERVIEW_PROJECT IN ('LGBT','LGBTQ Civil Rights Movement')

使用此Fiddle并根据需要将其转换为您的数据库。

答案 1 :(得分:0)

确定已完成

选择[所有LGBTQ面试候选人] .INTERVIEWEE_NUMBER作为[所有LGBTQ面试候选人_INTERVIEWEE_NUMBER],[所有LGBTQ面试候选人] .INTERVIEWEE_LNAME,[所有LGBTQ面试候选人] .INTERVIEWEE_FNAME,[所有LGBTQ面试候选人] .INTERVIEWEE_PROJECT,[已完成/处理LGBTQ访谈] .INTERVIEWEE_NUMBER AS [已完成/处理LGBTQ访谈_INTERVIEWEE_NUMBER],[完成/处理LGBTQ访谈] .INTERVIEW_PROJECT,[已完成/处理LGBTQ访谈] .INTERVIEW_STATUS 来自[所有LGBTQ访谈候选人] INNER JOIN [完成/处理LGBTQ访谈]关于[所有LGBTQ访谈候选人]。[INTERVIEWEE_NUMBER] = [完成/处理LGBTQ访谈]。[INTERVIEWEE_NUMBER];