我希望从具有雇员和配偶的表中获取结果。如果雇员有配偶,则该雇员和配偶应完成调查;如果雇员没有配偶,则该雇员必须完成调查。调查在另一个表“调查”中,完成状态代码为“ 3”。员工和配偶的数据在“用户表”中,由其ID标识,即员工的ID为10000,如果该员工有配偶,则配偶的ID为10001。您能帮我提取结果吗? >
用户表为
metric_rank
调查表
id, user_id, firsyt_name, last_name, email, status, date
如果用户ID为AE10000,则配偶为AE10001
到目前为止我的尝试:
survey_id,user_id,title, content,date, flag
我只需要员工详细信息,而不是配偶详细信息,但是如果员工有配偶,则配偶应完成调查;如果员工没有配偶,则用户应完成调查。
我想要的输出是:user_id,first_name,last_name,email
答案 0 :(得分:0)
以下脚本将为您返回具有婚姻状况和配偶ID的用户列表。您能否从此输出中完成其余的工作?
SELECT DISTINCT LEFT(A.user_id,LEN(A.user_id)-1)+'0' user_id,
CASE
WHEN B.u_id IS NULL THEN 'Married'
ELSE 'Unmarried'
END Status,
CASE
WHEN B.u_id IS NULL THEN NULL
ELSE B.u_id + '1'
END Spouse_id
FROM [user] A
LEFT JOIN (
SELECT LEFT(user_id,LEN(user_id)-1) u_id
FROM [user]
WHERE RIGHT(user_id,1) = '1'
)B ON LEFT(A.user_id,LEN(A.user_id)-1) = B.u_id
输出将是-
user_id Status Spouse_id
A100010 Unmarried A100011
A100020 Married NULL
A100030 Married NULL
A100040 Unmarried A100041