PL/SQLでビューを作成しているのですが、外部結合がうまくいきません。
CREATE OR REPLACE VIEW USERCOST.VW_KENSAKU_CUST
(CUSTID,TANTOU)
AS
SELECT Y.CUSTID, CD2.CODENM1 AS TANTOU,
FROM T_YOYAKU Y, M_CODE CD2,
(SELECT CUSTID,EDATE,JITUWORKERID
FROM T_YOYAKU
WHERE CUSTID || EDATE IN
(SELECT CUSTID || MAX(EDATE)
FROM T_YOYAKU
WHERE TO_DATE(EDATE,'YYYY/MM/DD') <= TO_DATE(SYSDATE,'YYYY/MM/DD')
GROUP BY CUSTID )
WHERE
Y.CUSTID = AL.CUSTID AND
Y.EDATE = AL.EDATE AND
Y.JITUWORKERID = AL.JITUWORKERID AND
CD2.CODEID(+) = '50' AND
CD2.CODENO(+) = Y.JITUWORKERID
/
抽出できないのは CD2.CODENM1です。どなたか知恵を貸して頂けませんでしょうか。お願い致します。
No.1ベストアンサー
- 回答日時:
どうもこんにちは。
まず、このSQL文ですがどこか抜け落ちているようで
このままだと動作しないのでは?
さて、CD2.CODENM1がうまく抽出できないとのことですが
具体的にどうなるのかがわからないのではっきりとは言え
ませんが、以下の条件から
CD2.CODEID(+) = '50' AND
CD2.CODENO(+) = Y.JITUWORKERID
Yテーブルから CD2テーブルへの外部結合でCODEIDが'50'の
ものを抽出し、その場合にYテーブル側は全件抽出するという
ように読み取れます。
この場合、CODEIDが'50'以外のレコードについてはCD2.CODENM1
がNULLとなってしまうと思います。CODEIDが'50'だけ抽出したい
のであれば CD2.CODEID = '50' でいいかと思います。
あと結合の書き方も Y.JITUWORKERID = CD2.CODENO(+) と外部
結合される側を右辺に持っていった方がいいような気がします。
的外れな回答だったらすみません。(汗)
わざわざ長いソースを読んでくださりどうもありがとうございます。
外部結合はうまくいきました。
原因はテーブルの項目だったようです。
iwazさんの真心に感謝してポイント発行させていただきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
GROUP BYを行った後に結合した...
-
select insertで複数テーブルか...
-
MERGE文を単体テーブルに対して...
-
複数テーブルのMAX値の行データ...
-
固定値を含む結合と複数テーブ...
-
select句副問い合わせ 値の個...
-
SQL GROUPで件数の一番多いレコ...
-
SELECTの結果で同一行を複数回...
-
oracleの分割delete
-
外部結合とor条件混在の記述方法
-
SET句内で複数の条件を指定して...
-
unionの結果は集計はできないで...
-
他のテーブルを参照した値はupd...
-
否定条件回避
-
select文でフリーズします。
-
COUNTの取得方法(?)について...
-
Oracleでの文字列連結サイズの上限
-
ADO VBA 実行時エラー3021
-
GROUP BYを使ったSELECT文の総...
-
Excelで、改行がある場合の条件...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
GROUP BYを行った後に結合した...
-
select insertで複数テーブルか...
-
select句副問い合わせ 値の個...
-
SELECTの結果で同一行を複数回...
-
固定値を含む結合と複数テーブ...
-
MERGE文を単体テーブルに対して...
-
外部結合とor条件混在の記述方法
-
他のテーブルを参照した値はupd...
-
SET句内で複数の条件を指定して...
-
複数テーブルのMAX値の行データ...
-
SQLの書き方(チェックボックス)
-
SQL GROUPで件数の一番多いレコ...
-
unionの結果は集計はできないで...
-
oracleの分割delete
-
unionでマージした副問合せを結合
-
集計後の数値が倍になる
-
COUNTの取得方法(?)について...
-
updateの一括実行
-
サブクエリ同士をLEFT JOIN
-
DELETE 文とEXISTSの使い方につ...
おすすめ情報