正しい結果をもたらす式は、Case
です。 「OR」条件を追加すると結果が変わります。OR条件付きのケース式
なぜ「OR」を追加して結果が変わるのですか?
私は "OR" ステートメントID 1はまだ "未割り当て" でなければなりません
Or
を添加した声明
--OR (TABLEA.ROLE != 'RED' AND CCP.STATUS = 'Active'
--AND TO_CHAR(CCP.END_DATE,'MM/DD/YYYY') = '09/09/9000'
全クエリ
SELECT
CASE
WHEN MAX(CASE WHEN TABLEA.ROLE = 'RED'
AND TABLEA.ID IS NULL
AND CCP.STATUS = 'Active')
--OR (TABLEA.ROLE != 'RED' AND CCP.STATUS = 'Active'
--AND TO_CHAR(CCP.END_DATE,'MM/DD/YYYY') = '09/09/9000')
THEN TABLEA.DT
END
) KEEP (DENSE_RANK LAST ORDER BY TABLEA.HISTORYID DESC,
CASE WHEN TABLEA.ROLE = 'RED'
THEN TABLEA.DT
END ASC NULLS FIRST
) OVER (PARTITION BY CCP.ID) IS NULL
THEN 'Unassigned'
--WHEN TABLEA.ROLE != 'RED' THEN 'Unassigned'
WHEN TO_CHAR(CCP.END_DATE,'MM/DD/YYYY') != '09/09/9000'
AND CCP.STATUS = 'Closed'
THEN 'Closed'
ELSE 'Assigned'
END AS CURRENT_STATUS2
FROM TABLEA
結果を期待しますOR
文なし:
ID CURRENT_STATUS2
1 Unassigned
OR
文を使用して、結果は:未割り当て可能と読むこと
ID CURRENT_STATUS2
1 Assigned
構文エラー... – jarlh
はこれとそれまたはこれが(この及びその)または(本)右@jarlh – Twelfth
異なっている...操作やごブラケットの順番を覚えておいてください。 OR文を構文に正しく追加する方法はありますか? –