ネストされた選択で動作する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
も:
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
http://msdn.microsoft.com/en-us/library/ms181765.aspxでMSDNの例に一致するように思われます。何か不足していますか?
THENとELSEブランチが等しいので、CASEを削除できます。 ;-) – Heinzi
THEN/ELSEとELSE/ENDの2つのコードスニペットは同じように見えますか?それ以外のものはサブクエリで '()'とSELECTだけを必要とします。*(@ptfaulknerの回答によく似ています)* '(SELECT SUM(クレジット)FROM balance WHERE ...)' – MatBailie
>>ネストされた選択で動作するCASE文を取得するのに問題があります。<<あなたは何の問題がありますか?エラーまたは警告? –