使いやすいように設計された Microsoft リレーショナル データベース管理システムのファミリ。
> FROM Table_Order AS TO
TO は SQL における予約語の1つなので、
テーブル/フィールドの名前/別名として
使用しない方がよいでしょう。
(例えば TO を TODR に変更すれば一応は動作するはず)
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
Access2016からパススルークエリでSQLServer2017と接続し、データ参照しています。
その際のSQL文の書き方について教えてください。
下記3つのテーブルがあります。
注文一覧 (Table_Order)
受注No 商品名 数量
1 A 100
2 B 200
3 C 10
4 A 150
商品一覧 (Table_Product)
商品ID 商品名
1 A
2 B
3 C
注力商品一覧 (Table_Focus)
ID 商品ID
1 2
2 3
この時、受注一覧上で注力商品かどうかを知りたいと思っています。
完成イメージ
受注No 商品名 数量 注力商品
1 A 100
2 B 200 〇
3 C 10 〇
4 A 150
SELECT TO.受注No, TO.商品名 , TO.数量,
(SELECT COUNT(*) FROM Table_Focus AS TF INNER JOIN Table_Product AS TP ON TF.商品ID=TP.商品ID
WHERE TO.商品名=TP.商品名) AS FocusProduct
FROM Table_Order AS TO
Access側でFocusProductが1以上なら〇と表示するとしようと考えていたのですが、うまくクエリが
動きません。
自分なりに色々検索していたのですが、サブクエリでJOINする例が出てこないのですが、もしかして
サブクエリでJOINすることはできないのでしょうか。
その場合、上記完成イメージを作るためにはどのようなクエリを作ればよいでしょうか。
よろしくお願いします。
補足:
受注一覧の商品名を商品IDとし、商品一覧と結合で商品名を表示すれば商品ID同士を比較するサブクエリ
で済むし、管理も楽になると思うのですが、受注一覧テーブルは商品一覧テーブルを作る前に作った
システムで今、商品IDに変更すると色々な所にバグが出そうなため、上記のような商品一覧の商品名と
注力商品テーブルの商品IDを比較するクエリで何とかしたいと思っています。
。。。いずれは受注一覧の商品名を商品IDにシステム変更しないといけないとわかっているのですが。。。
ご教授のほどよろしくお願いします。
使いやすいように設計された Microsoft リレーショナル データベース管理システムのファミリ。
ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。
質問作成者が受け入れた回答
> FROM Table_Order AS TO
TO は SQL における予約語の1つなので、
テーブル/フィールドの名前/別名として
使用しない方がよいでしょう。
(例えば TO を TODR に変更すれば一応は動作するはず)
sk.exe様
いつもありがとうございます。
予約語だったことが原因でしたか。。。
おかげさまで無事動くようになりました。