いつも大変お世話になっております。
テーブルを4つ以上結合する場合のやり方おしえてくれませんでしょうか
3つは以前教えていただきたいことがあります。
S 社員マスタ 社員コード 社員名
U 売上明細 社員コード 売上金額 状態区分
A 部署マスタ 社員コード 部署名
B 仕入テーブル 社員コード 部門
単純に増やしましたがだめでした。
strSQL = strSQL & " SELECT"
strSQL = strSQL & " S.社員コード,S.社員名,U.売上金額,U.状態区分,A.部署名"
strSQL = strSQL & " FROM("
strSQL = strSQL & " [社員マスタ$] S INNER JOIN [売上明細$] U"
strSQL = strSQL & " ON S.社員コード = U.社員コード)"
strSQL = strSQL & " INNER JOIN [部署マスタ$] A"
strSQL = strSQL & " ON U.社員コード = A.社員コード"
'--------------追加した部分です。
strSQL = strSQL & " INNER JOIN [仕入コード$] A"
strSQL = strSQL & " ON U.社員コード = B.社員コード"
strSQL = " "
strSQL = strSQL & " SELECT"
strSQL = strSQL & " S.社員コード,S.社員名,U.売上金額,U.状態区分,A.部署名"
strSQL = strSQL & " FROM("
strSQL = strSQL & " [社員マスタ$] S INNER JOIN [売上明細$] U"
strSQL = strSQL & " ON S.社員コード = U.社員コード)"
strSQL = strSQL & " INNER JOIN [部署マスタ$] A"
strSQL = strSQL & " ON U.社員コード = A.社員コード"
お時間あればおしえてくれませんでしょうか
No.4ベストアンサー
- 回答日時:
まずは、自分の考えたSQLになっているかどうかを、strSQLの内容をテキスボックスとかセルとかに書き出して確認しましょう。
3つに限らず、いくつでも
??? JOIN A ON 〜
??? JOIN B ON 〜
??? JOIN C ON 〜
??? JOIN D ON 〜
??? JOIN E ON 〜
...
等と、好きなだけJOINできます。
※ 上から順番に結合するので、正しい順番に指定する必要はありますが
ExcelのSQLはよくしらないのですが。
一般的なSQLでは、() は副問合せ (サブクエリ) に使います。
・()の中だけで SQL として(SELECT文として)正しいものでなければなりません。
・()の中でテーブルに使われた別名は、()の中だけで有効です。
・FROMで使うなら、後で参照できるように、()全体に別名を付けます。
プログラムから抜きだすと
( [社員マスタ$] S INNER JOIN [売上明細$] U ON S.社員コード = U.社員コード)
となっています。これは
・SELECT として正しくありません。
・ S や U はこの中だけしか使えないのに、外で使おうとしています。
・別名が付いていません。
No.3
- 回答日時:
[仕入テーブル$] B でないのか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) SQLで抽出 4 2022/12/04 13:55
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Visual Basic(VBA) Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる 3 2022/12/21 09:07
- その他(Microsoft Office) エクセルで1行の長いデータを指定の桁数で分割する方法が知りたいです。 4 2022/05/20 21:55
- 法学 コンピューター プログラミングの言語で記述されたプログラミングのコード一式は、作った人に 著作権があ 4 2023/08/04 17:31
- Visual Basic(VBA) 先ほど、回答者様によって教えていただいたのですがどうしたらいいか分かりません。 ユーザーフォーム上に 2 2023/02/21 22:25
- 人事・法務・広報 社内メールを盗み見ることは違反行為になりますか? 噂好きの情報通の社員がおり、その社員は管理職のメー 4 2023/07/15 16:48
- その他(買い物・ショッピング) JANコードの登録について 1 2022/07/23 14:19
- 葬儀・葬式 元勤務先での訃報 私の元勤務先の元上司Yさんは、元勤務先の社員・元社員・社員の家族・元社員の家族・経 1 2022/12/07 17:41
- Oracle 下記のsqlで取得されるレコード以外を取得する方法ありますでしょうか。 SELECT B.番号, B 2 2022/04/20 23:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
1日に1人がこなせるプログラム...
-
access2003 クエリSQL文に...
-
JavaScriptの定数名が取り消し...
-
1、Rstudioで回帰直線を求める...
-
chatgptでつくってもらったコー...
-
エクセルに見えない文字(JISX0...
-
【VB6】実行ファイルとした後、...
-
ExcelのVBAコードについて教え...
-
ACCESSユニオンクエリでORDER B...
-
JavaScript|特定URLだった時、...
-
特定行の背景色を変えたいのですが
-
変数名「cur」について
-
パイソン。スクレイピング。Chr...
-
pythonにてseleniumを使うも、...
-
まちがっているところ
-
Exel VBA 別ブックから該当デ...
-
【EXCEL】UserFormで入力して ...
-
VBAでファイルオープン後にコー...
-
ペンダントライトのコードの色...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
Exel VBA 別ブックから該当デ...
-
access2003 クエリSQL文に...
-
1日に1人がこなせるプログラム...
-
JANコードとPOSコードは同じ?
-
変数名「cur」について
-
JavaScriptの定数名が取り消し...
-
COBOLの文法
-
JavaScript|特定URLだった時、...
-
Accessの文字列部分一致を合計...
-
1、Rstudioで回帰直線を求める...
-
PreviewKeyDownイベントが2回...
-
ACCESSユニオンクエリでORDER B...
-
エクセルに見えない文字(JISX0...
-
Excel VBAでOpenTextのFieldInf...
-
VBAでファイルオープン後にコー...
-
chatgptでつくってもらったコー...
-
特定行の背景色を変えたいのですが
-
JIPS-Eコードのコード表について
-
Nullの使い方が不正です。
おすすめ情報
strSQL = strSQL & " S.社員コード,S.社員名,U.売上金額,U.状態区分,A.部署名,B.部門"
,B.部門" 追加したカラムです。忘れてました。すみません
strSQL = strSQL & " INNER JOIN [仕入コード$] A" 誤り
strSQL = strSQL & " INNER JOIN [仕入テーブル$] A" 正しい
申し訳ございません
ありがとうございます。
テーブル名のエイリアス(別名)
調べました
どこを修正したらよいか教えていただきたいです
A.部署名 AS 部署名前とかでもだめでした。
教えていただきたいです。
お願い申し上げます
何卒宜しくお願い致します。
strSQL = strSQL & " SELECT"
strSQL = strSQL & " S.社員コード,S.社員名,U.売上金額"
strSQL = strSQL & " FROM("
strSQL = strSQL & " [社員マスタ$] S LEFT JOIN [売上明細$] U"
strSQL = strSQL & " ON S.社員コード = U.社員コード)"
このコードは問題なく動作致します。
2回にわけます。文字制限のため
kmee 様
strSQL = strSQL & " LEFT JOIN [仕入コード$] A"
strSQL = strSQL & " ON U.社員コード = A.社員コード"
さっきとは少し内容がちがいます。と投稿前に
実行したら うまくいきました。
わけがわかりません。わたしなりに 整理します。
ありがとうございました。