2017-12-11 45 views
0

2つの状況に該当する場合にCASEの結果が選択されるように、既存のコードを修正しようとしています。ビジネスルールが変更されたので、以下のコードは機能していますが、不完全な状態になっています。 以下は、特定の請求書のANY明細にITMCLSCDが 'CCC-OUT'であるかどうかをテストする実際のコードのスニペットです。ルールが変更され、すべての広告申込情報に 'CCC-OUT'のITMSLSCDが必要になりました。 これで、 'CCC-OUT'が存在するか、他のITMSLSCDが存在しないかをテストする必要があります。
誰かが私を正しい方向に向けることができますか?これまでのところ、あなたは少なくとも一つのLEFT(IV.ITMCLSCD,7) = 'CCC-OUT'をしたい値のSQLテストがありません

おかげ

SELECT DISTINCT 
    OH.SOPNUMBE HSOPMNBR, 
    OH.INVODATE INVODATE, 
    OH.ORIGNUMB ORIGNUM, 
    OH.CUSTNMBR CUSTOMER, 
    CASE WHEN 'CCC-OUT' IN (SELECT LEFT(IV.ITMCLSCD,7) 
      FROM IV00101 
      INNER JOIN SOP10200 OL ON OH.SOPNUMBE = OL.SOPNUMBE 
      WHERE OH.SOPTYPE = 3 
      AND OH.PSTGSTUS = 0 
      AND OH.VOIDSTTS = 0 
      AND OH.BACHNUMB <>'DO NOT POST') 
THEN 'THIRD PARTY SERVICES' 
     ELSE 'COMPANY SERVICES' 
    END TRANSTYPE, 
    UD.USRTAB09 
FROM SOP10100 OH 
INNER JOIN SOP10200 OL ON OH.SOPNUMBE = OL.SOPNUMBE 
INNER JOIN IV00101 IV ON OL.ITEMNMBR = IV.ITEMNMBR 
INNER JOIN SOP10106 UD ON OH.SOPNUMBE = UD.SOPNUMBE 
WHERE OH.SOPTYPE=3 
AND OH.PSTGSTUS = 0 
AND OH.VOIDSTTS = 0 
AND OH.BACHNUMB <>'DO NOT POST' 
+2

コードは意味がありません。 「OH」とは何ですか? 'IV'とは何ですか? –

+1

それはあなたが与えるすべての場合、どのように人々があなたを助けることを期待していますか?クエリは実行されません。ここでは、質問する方法を参考にしています。 https://stackoverflow.com/help/how-to-ask – Eric

+0

不足しているコードを追加しました –

答えて

0

。今では、少なくとも1つのLEFT(IV.ITMCLSCD,7) = 'CCC-OUT'を加え、さらにLEFT(IV.ITMCLSCD,7) <> 'CCC-OUT'でなければなりません。

WHEN 'CCC-OUT' = 
(
    SELECT 
    CASE WHEN MIN(LEFT(IV.ITMCLSCD,7)) = MAX(LEFT(IV.ITMCLSCD,7)) 
     THEN MIN(LEFT(IV.ITMCLSCD,7)) 
     ELSE 'MISMATCH' 
    END 
    FROM IV00101 
    INNER JOIN SOP10200 OL ON OH.SOPNUMBE = OL.SOPNUMBE 
    WHERE OH.SOPTYPE = 3 --Invoice 
    AND OH.PSTGSTUS = 0 --Unposted 
    AND OH.VOIDSTTS = 0 --Not Voided 
    AND OH.BACHNUMB <>'DO NOT POST' 
) 
THEN '3PARTY SERVICES' 
:すべての値がこれを書くため 'CCC-OUT'一つ

:-)方法であるため、言い換えれば

は、あなたが最小値または最大値を見ているかどうかに関係なく、両方のは、'CCC-OUT'あります

ELSEブランチを削除することもできますが、これはデフォルトでNULLになります)。

+0

ありがとうございました。あなたの答えは正しいコーディングを得るのに役立ちました。次の(そしてうまくいけば最後の)課題は、ヘッダーテーブルの各エントリに対して1つのレコードしか得られないということです。しかし、私はそれについて別の話題を開くでしょう。 –

関連する問題