エラーが発生しました: 'THEN'に近い条件が想定されるコンテキストで指定された非ブール型の式。ケースステートメントでMinを使用するにはどうすればいいですか
どうすればこの問題を解決できますか?
ここはSQLです。
Select
HEADER_ID,
CASE
WHEN MIN(OPPTY_HEADER_ID) THEN STATCD='SP66'ELSE STATCD AS STACD,
TYPE, NL_IND
FROM nl_dups_load
エラーが発生しました: 'THEN'に近い条件が想定されるコンテキストで指定された非ブール型の式。ケースステートメントでMinを使用するにはどうすればいいですか
どうすればこの問題を解決できますか?
ここはSQLです。
Select
HEADER_ID,
CASE
WHEN MIN(OPPTY_HEADER_ID) THEN STATCD='SP66'ELSE STATCD AS STACD,
TYPE, NL_IND
FROM nl_dups_load
CASE WHEN
ステートメントの最初の句に真偽の結果が必要です。以下のようなものに変更
:
Select HEADER_ID
, CASE WHEN MIN(OPPTY_HEADER_ID) > 0 THEN STATCD = 'SP66' ELSE STATCD END AS STACD
, TYPE
, NL_IND
FROM nl_dups_load
ウィル「修正」その特定のエラーが、その結果は、あなたが探しているものではないかもしれません。また、私は、その形式のCASE文で集計関数(つまり、 'MIN')を使用できるとは考えていないので、元のものを修正すると別のエラーが発生する可能性があります。
質問と希望のSQL結果をよりよく説明する必要があります。
EDIT:あなたは(作られた仮定の負荷で)次のような何かをしたいよう
I should have included more info. This table is a table of duplicate header_ids. Each header_id has and oppty_header_id. so there are 2 oppty_header_id to each header_id. so I wan to take the min oppty_header_id per header id and change its statcd.
が鳴ります。 UPDATEクエリを簡単に元に戻すことはできないため、これをテストしてから使用してください。
UPDATE A
SET A.STATCD = 'SP66'
FROM nl_dups_load AS A
INNER JOIN (
SELECT B.HEADER_ID, MIN(OPPTY_HEADER_ID) AS MinOppty
FROM nl_dups_load AS B GROUP BY B.HEADER_ID
) AS C ON A.HEADER_ID = C.HEADER_ID AND A.OPPTY_HEADER_ID = C.MinOppty
けれども、私は本当にこれはあなたがしているものであることを確実に知るためにあなたのソーステーブルのいくつかの例の行と結果のテーブルで行った変更で、同じ行の例を参照する必要があるだろう探しています。
あなたは何をしようとしていますか?そして、これはRDBMSの問題ですか? – Strawberry
私はより多くの情報を含めるべきだった。この表は重複したheader_idsの表です。各header_idには、および、oppty_header_idがあります。したがって、各header_idには2つのoppty_header_idがあります。だから私はヘッダーIDごとに分のoppty_header_idを取って、そのstatcdを変更するつもりです。 –
あなたの質問にあなたの質問に情報を含めるように質問してください。 –