选择具有两个不同条件的列连接到两个不同的表

Selecting a column with two different conditions joined on two different tables

对于下面的代码,我需要 select 来自 table #ScoreTemp 的列 [Score Value],但我需要 select 它作为两个不同的基于另一列 [Score] 等于一列的字符串 'Fico' 和另一列的 'Revbal' 的条件的列。当两个条件的值都存在于一个 table 中时,我不确定如何执行此操作。任何帮助,将不胜感激。谢谢!

SELECT a.CBRRequestDate AS UpdateDate
    ,b.[Score Value] AS Fico
    ,c.[Score Value] AS Revbal
    ,NULL AS TUGroup
    ,a.Vision_Practitioner_Id__c AS PID
FROM [SFOnPrem].[dbo].[Contact] a
LEFT JOIN #ScoreTemp d ON a.Id = d.Guarantor__c
LEFT JOIN #ScoreTemp b ON a.Id = b.Guarantor__c
    AND b.Score = 'Fico'
LEFT JOIN #ScoreTemp c ON a.Id = c.Guarantor__c
    AND c.Score = 'Revbal'

你的代码应该没问题。但是如果你有缺失值,那么使用 LEFT JOIN:

SELECT c.CBRRequestDate AS UpdateDate,
       stf.[Score Value] AS Fico,
       str.[Score Value] AS Revbal,
       NULL AS TUGroup,
       c.Vision_Practitioner_Id__c AS PID
FROM [SFOnPrem].[dbo].[Contact] c LEFT JOIN
     #ScoreTemp stf
     ON a.Id = stf.Guarantor__c AND
        stf.Score = 'Fico' LEFT JOIN
     #ScoreTemp str
     ON a.Id = str.Guarantor__c AND
        str.Score = 'Revbal';

请注意,我修复了 table 别名,因此它们不再是无意义的字母,而是 table 名称的缩写。我还更改了第一列,因此它来自 contact——在这种情况下对我来说这似乎是合乎逻辑的,但它可能不正确。