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で質問しましょう!
似たような質問が見つかりました
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- MySQL SQLです。下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「昨年の各月の総降 1 2023/07/01 00:32
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- 英語 英文の添削をお願いします 4 2023/05/23 11:10
- 大学受験 英作文の添削をお願いしたいです。 2 2022/08/19 20:37
- 英語 L-PRF can be obtained by manual or automated metho 1 2022/04/08 09:39
- Oracle 下記のsqlで取得されるレコード以外を取得する方法ありますでしょうか。 SELECT B.番号, B 2 2022/04/20 23:21
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- MySQL 下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「A,B組の女子の氏名のよみ。 1 2023/05/16 15:28
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
GROUP BYを行った後に結合した...
-
select insertで複数テーブルか...
-
MERGE文を単体テーブルに対して...
-
select句副問い合わせ 値の個...
-
SQL GROUPで件数の一番多いレコ...
-
unionでマージした副問合せを結合
-
unionの結果は集計はできないで...
-
外部結合とor条件混在の記述方法
-
SQLの書き方(チェックボックス)
-
同一テーブルの別レコードの内...
-
構成比を求めるSQL文につきまして
-
集計後の数値が倍になる
-
大量にデータを更新するテーブ...
-
固定値を含む結合と複数テーブ...
-
複数テーブルのMAX値の行データ...
-
再起SQL が無限ループします。
-
結合と副問い合わせの違い
-
SELECTの結果で同一行を複数回...
-
件数を取得する方法
-
Oracleでの文字列連結サイズの上限
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
GROUP BYを行った後に結合した...
-
select句副問い合わせ 値の個...
-
select insertで複数テーブルか...
-
SELECTの結果で同一行を複数回...
-
MERGE文を単体テーブルに対して...
-
固定値を含む結合と複数テーブ...
-
複数テーブルのMAX値の行データ...
-
他のテーブルを参照した値はupd...
-
unionの結果は集計はできないで...
-
外部結合とor条件混在の記述方法
-
oracleの分割delete
-
SET句内で複数の条件を指定して...
-
SQL GROUPで件数の一番多いレコ...
-
DELETE 文とEXISTSの使い方につ...
-
COUNTの取得方法(?)について...
-
集計後の数値が倍になる
-
SQLの書き方(チェックボックス)
-
unionでマージした副問合せを結合
-
結合と副問い合わせの違い
-
副問い合わせのinsert文
おすすめ情報