oracleで selectを使ってデータを取得したら重複データがたくさん出てきたため、重複データは一件だけに絞って取得するように
SELECT のあとに DISTINCTを付けたのですがエラーになってしまします。
DISTINCTを付ける前はデータ取得できました
エラーメッセージは「SELECT式が無効です」というメッセージです。
調べながら書いたsql文なので構文的に違うんだと思うのですがどこがダメなのかわかりません。
わかるかたがいたら教えていただきたいです。
よろしくお願いします。
*まず selectで 取得したいカラムを書きました。
取得した後にvalue(キー),DISP(値)としてセットしたいため
oracle
1SELECT DISTINCT 2 MU.CORP_CD AS VALUE 3 , MC.CORP_NAME AS DISP
*fromでテーブルを選択して
INNER JOINで MUとMCのコードが同じカラム
を取得できるように絞りました。
oraccle
1 FROM 2 M_USER MU 3 INNER JOIN M_CORPORATION MC 4 ON MU.CORP_CD = MC.CORP_CD
EXSISTSを使いMUテーブルのUSER_CDとTRテーブルのUSER_CDが同じなら
trueを返す。
order by で並び替える。
oracle
1WHERE 2 EXISTS ( 3 SELECT 4 1 5 FROM 6 T_REQUEST TR 7 WHERE 8 MU.USER_CD = TR.USER_CD 9 ) 10 AND MU.DELETE_FLG = '0' 11 ORDER BY 12 MU.USER_CD ASC
oracle
1SELECT DISTINCT 2 MU.CORP_CD AS VALUE 3 , MC.CORP_NAME AS DISP 4 FROM 5 M_USER MU 6 INNER JOIN M_CORPORATION MC 7 ON MU.CORP_CD = MC.CORP_CD 8WHERE 9 EXISTS ( 10 SELECT 11 1 12 FROM 13 T_REQUEST TR 14 WHERE 15 MU.USER_CD = TR.USER_CD 16 ) 17 AND MU.DELETE_FLG = '0' 18ORDER BY 19 MU.USER_CD ASC
回答1件
あなたの回答
tips
プレビュー