Используются объединенные таблицы в выбранном статусе - PullRequest
0 голосов
/ 05 августа 2011

Мне было интересно, возможно ли использовать связанную таблицу в отчете CASE при объявлении столбца в избранном утверждении. Ниже приведен упрощенный пример моей проблемы. Есть идеи? Спасибо!

SELECT  M.MID 
    ,[Count] =  CASE (SELECT COUNT(*) FROM Refund R2 
            WHERE R2.RefundID = R.RefundID) = 1
                        THEN 'One'
                        ELSE 'Many'
                        END

FROM #temp T
JOIN Refund R ON R.RefundID = T.RefundID

"WHERE R2.RefundID = R.RefundID говорит, что" R.RefundID не может быть привязан.

Ответы [ 2 ]

1 голос
/ 05 августа 2011

Если вы используете SQL Server 2005 или более позднюю версию, вы можете попробовать другой подход:

SELECT
  M.MID, 
  [Count] = CASE COUNT(*) OVER (PARTITION BY R.RefundID)
    WHEN 1 THEN 'One'
    ELSE 'Many'
  END
FROM #temp T
JOIN Refund R ON R.RefundID = T.RefundID
1 голос
/ 05 августа 2011

У вас плохой псевдоним.У вас есть R, но не R2, на который ссылаются:

SELECT  M.MID 
        ,[Count] =  CASE WHEN (SELECT COUNT(*) FROM ReferralTypeKey R2
                               WHERE R2.RefundID = R.RefundID) = 1
                               THEN 'One'
                               ELSE 'Many'
                               END

FROM #temp T
JOIN Refund R ON R.RefundID = T.RefundID
...