Queryを使用してのSQL文(複数テーブルを使用)

解決


sa  2009-01-28 20:31:33  No: 33218

SQL文で質問です。

A、Bというテーブルが2つあるとします。

Aには 支店コード、担当者コード、入力担当者コードのフィールドが存在し、
Bには 支店コード、担当者コード(入力担当者コード)、名前のフィールドが存在します。

私がしたいことは
担当者コード、入力担当者コードの名前を取得したいのですが…
どのようにSQL文を書けばいいのかわかりません。

SELECT Y.名前,Z.名前 FROM A INNER JOIN B AS Y ON A.支店コード = Y.支店コード AND A.担当者コード = Y.担当者コード) 
LEFT JOIN B AS Z ON A.支店コード = Z.支店コード AND A.担当者コード = Z.担当者コード

このようにしてみましたが、データが取得されません。
何かわかりましたら教えていただけますでしょうか?
よろしくお願いいたします。


igy  2009-01-28 21:46:50  No: 33219

・“) ”に対応する“( ”がありませんが、正しく動作しますか?
・Aの“入力担当者コード”がSQL文に見当たりませんが、必要ないですか?


sa  2009-01-28 22:02:56  No: 33220

>>igy様

お返事ありがとうございます。
)は入力ミスです…無視してください。

Aの“入力担当者コード”がSQL文にないとのことですが
LEFT JOIN B AS Z ON A.支店コード = Z.支店コード AND A.入力担当者コード = Z.担当者コード

でした。
すみませんがよろしくお願いいたします。


igy  2009-01-28 22:20:37  No: 33221

>このようにしてみましたが、データが取得されません。

具体的には、どのようになるのですか?(取得件数が0?)
ちなみに、テーブルにはデータはありますか?


sa  2009-01-28 22:35:40  No: 33222

もしSQL文があっていたら
グリッドに表示されるようにしているのですが
データが取得されずにずっとプログラムは動いている感じになっています。

なのでどこか間違っているのかなーと思いまして…

ちなみに、テーブルにはデータはあります。


igy  2009-01-28 22:41:39  No: 33223

>もしSQL文があっていたら
>グリッドに表示されるようにしているのですが
>データが取得されずにずっとプログラムは動いている感じになっています。

このような情報は最初に書いたほうがよいと思います。

ちなみに、データベースは何ですか?
他の方法など(ツール)で、そのSQL文を実行した場合はどうなりますか?


sa  2009-01-28 22:52:43  No: 33224

何度もすみません…

データベースはDB2です。
他のツールですか…
Delphi以外でSQL文を実行したことがないのですが…


igy  2009-01-28 22:54:07  No: 33225

あと、コンポーネントは何を使用してますか?
それらは、正しく設定されてますか?


igy  2009-01-28 22:56:12  No: 33226

>他のツールですか…
>Delphi以外でSQL文を実行したことがないのですが…

DB2付属のツールは、どうですか?


一気にするよりはひとつずつ  2009-01-29 02:57:58  No: 33227

入力担当者がどれとも結合されていない様な。
Y,Zテーブル共に担当者に結合されてます。


sa  2009-01-29 03:47:59  No: 33228

お返事が遅くなってすみません。

>もしSQL文があっていたら
>グリッドに表示されるようにしているのですが
>データが取得されずにずっとプログラムは動いている感じになっています。

という状態だったので少しほっておいたら(30分もですが…)
グリッドに表示されました!

Aのテーブルにレコードが100万件以上あり
時間がかかっていたようです。

ご迷惑をおかけしました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加