我很难用这个,不知道是否可能,但似乎应该如此。
所以我有两张桌子,“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就可以了。但我无法正确查询
答案 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];