有两种方法可以解决此问题,这取决于查询1和查询2的结果是否唯一,是否需要显示为单行或需要以某种方式汇总/计算效率。
如果结果是唯一的(不会有相同的SS + WC组合),则可以执行以下操作:
SELECT ss,wc,wc_efficiency
FROM query1
UNION ALL
SELECT ss,wc_efficiency
FROM query2
如果结果不是 唯一,则意味着您在两个查询中都可能具有SS + WC组合,那么您可以执行以下操作:
SELECT
q1.ss,q1.wc,q1.wc_efficiency AS [wc_efficiency1],q2.wc_efficiency AS [wc_efficiency2]
FROM QUERY1 q1,QUERY2 q2
WHERE q1.ss = q2.ss
AND q1.wc = q2.wc
OR
SELECT
CASE
WHEN q1.ss IS NOT NULL THEN q1.ss
WHEN q2.ss IS NOT NULL THEN q2.ss
END AS [ss],CASE
WHEN q1.wc IS NOT NULL THEN q1.wc
WHEN q2.wc IS NOT NULL THEN q2.wc
END AS [wc],q2.wc_efficiency AS [wc_efficiency2]
FROM QUERY1 q1
FULL OUTER JOIN QUERY2 q2
ON q1.ss = q2.ss AND q1.wc = q2.wc
我更喜欢后一种选项,但是它们都应该类似地工作,如果您不希望将空值用于报告/绘图,则可以使用ISNULL将wc_efficiency设置为0 ...
edit:忘记了,如果第二个查询中的某些内容不在第一组结果中,则需要考虑这一点,您可能需要使用其他联接,但也可以使用case语句,因此我将编辑上面的第三种选择可以反映出来。
本文链接:https://www.f2er.com/3142588.html