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.担当者コード
このようにしてみましたが、データが取得されません。
何かわかりましたら教えていただけますでしょうか?
よろしくお願いいたします。
・“) ”に対応する“( ”がありませんが、正しく動作しますか?
・Aの“入力担当者コード”がSQL文に見当たりませんが、必要ないですか?
>>igy様
お返事ありがとうございます。
)は入力ミスです…無視してください。
Aの“入力担当者コード”がSQL文にないとのことですが
LEFT JOIN B AS Z ON A.支店コード = Z.支店コード AND A.入力担当者コード = Z.担当者コード
でした。
すみませんがよろしくお願いいたします。
>このようにしてみましたが、データが取得されません。
具体的には、どのようになるのですか?(取得件数が0?)
ちなみに、テーブルにはデータはありますか?
もしSQL文があっていたら
グリッドに表示されるようにしているのですが
データが取得されずにずっとプログラムは動いている感じになっています。
なのでどこか間違っているのかなーと思いまして…
ちなみに、テーブルにはデータはあります。
>もしSQL文があっていたら
>グリッドに表示されるようにしているのですが
>データが取得されずにずっとプログラムは動いている感じになっています。
このような情報は最初に書いたほうがよいと思います。
ちなみに、データベースは何ですか?
他の方法など(ツール)で、そのSQL文を実行した場合はどうなりますか?
何度もすみません…
データベースはDB2です。
他のツールですか…
Delphi以外でSQL文を実行したことがないのですが…
あと、コンポーネントは何を使用してますか?
それらは、正しく設定されてますか?
>他のツールですか…
>Delphi以外でSQL文を実行したことがないのですが…
DB2付属のツールは、どうですか?
入力担当者がどれとも結合されていない様な。
Y,Zテーブル共に担当者に結合されてます。
お返事が遅くなってすみません。
>もしSQL文があっていたら
>グリッドに表示されるようにしているのですが
>データが取得されずにずっとプログラムは動いている感じになっています。
という状態だったので少しほっておいたら(30分もですが…)
グリッドに表示されました!
Aのテーブルにレコードが100万件以上あり
時間がかかっていたようです。
ご迷惑をおかけしました。
ツイート | ![]() |