중첩 된 선택에서 작동하는 CASE 문을 가져 오는 데 문제가 있습니다. 나는 가깝다고 생각하지만 문법을 제대로 이해할 수는 없다. 지금까지 나는 시도했다 : 또한중첩 선택의 케이스
SELECT l.*,
Credit = (
CASE WHEN ISNULL(M.POSTCODE,'') <> '' THEN
sum(Credit) from Balance cb Where LEFT(LTrim(cb.AccountHolder),4) LIKE LEFT(LTrim(m.Company),4)
ELSE
sum(Credit) from Balance cb Where LEFT(LTrim(cb.AccountHolder),4) LIKE LEFT(LTrim(m.Company),4)
END
)
FROM live l INNER JOIN master m on m.ClientID = L.ClientID
WHERE ClientID = 12345
과 :
http://msdn.microsoft.com/en-us/library/ms181765.aspx에서 MSDN 예제와 일치하는 것 같다SELECT l.*,
(SELECT
CASE WHEN ISNULL(M.POSTCODE,'') <> '' THEN
sum(Credit) from Balance cb Where LEFT(LTrim(cb.AccountHolder),4) LIKE LEFT(LTrim(m.Company),4)
ELSE
sum(Credit) from Balance cb Where LEFT(LTrim(cb.AccountHolder),4) LIKE LEFT(LTrim(m.Company),4)
END
) AS Credit
FROM live l INNER JOIN master m on m.ClientID = L.ClientID
WHERE ClientID = 12345
. 내가 놓친 게 있니?
THEN과 ELSE 분기가 동일하므로 CASE를 제거하면됩니다. ;-) – Heinzi
THEN/ELSE와 ELSE/END 간의 두 코드 스 니펫이 동일하게 나타 납니까? 그 외에는 하위 쿼리에서'()'와 SELECT가 필요합니다. * (@ptfaulkner 응답과 많이 비슷합니다) *'(SELECT SUM (신용) FROM balance WHERE ...) ' – MatBailie
>> 중첩 된 선택에서 작동하도록 CASE 문을 가져 오는 데 문제가 있습니다. << 어떤 문제가 있습니까? 오류 또는 경고? –