- ベストアンサー
SQLビュー作成方法とは?
- VB2008、SQL Serverで開発をしています。得意先マスタの全件と、売上テーブルを読み、売上テーブルの商品コードの商品名を商品マスタより取得し、すべての得意先の売上データが存在するわけではありません。この処理をひとつのSQL文にする方法がわかりません。
- SQLビューの作成方法について教えてください。VB2008とSQL Serverを使用しており、得意先マスタの全件と売上テーブルを関連付け、商品コードと商品名を取得したいです。すべての得意先の売上データが存在しない場合も考慮して、ひとつのSQL文にまとめる方法を教えてください。
- ACCESS上でクエリを作成し、SQLビューにする方法がわかりません。得意先マスタの全件と売上テーブルを関連付け、商品コードと商品名を取得したいです。すべての得意先の売上データが存在しない場合も考慮して、ひとつのSQL文にまとめる方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ASによるフィールドの別名を取り除いて みたらどうですか。
その他の回答 (2)
- piroin654
- ベストアンサー率75% (692/917)
SQL = SQL & " 売上T.N AS 商品コード, " SQL = SQL & " 商品M.B AS 商品コード, " 別名としての商品コードを重複して取り出そうとしていますが。
- piroin654
- ベストアンサー率75% (692/917)
変なところ; (1) >商品M 売上T.商品コード = 商品M.商品名 商品M 売上T.商品コード = 商品M.商品コード では? (2) >FROM 売上T LEFT JOIN 商品M 売上T.商品コード = 商品M.商品名 FROM 商品M INNER JOIN 売上T ON 商品M.商品コード = 売上T.商品コード では? (3) 商品名称と商品名の混在 以上を修正して、2のSQL文の JOIN クエリ1 のクエリ1をクエリ1のSQL文に置き換え置き換えたSQL文を()で囲み、 (SELECT 売上T.伝票日付, 売上T・・・・) AS Temp として、2のSQL文の「クエリ1」をTempに書き変える。
補足
早速、回答いただき、ありがとうございます。 実際のSQLl文をわかりやすいように、日本語に置き換えた時に、項目名を間違えてしまいました。ご指摘の通りです。 さて、お教え頂いたようにしてみましたが、やはりエラーになります。 (エラーメッセージは、”ODBCドライバは要求されたプロパティをサポートしていません。”) 単純に3つのテーブルを LEFT JOIN したSQLは正常に読めているので、SQL文の間違いしか考えられません。 下記、実際のSQL文です。どうにも困ってしまっています。間違いがおわかりであれば、再度お教え頂きたく、よろしくお願いします。 SQL = "" SQL = SQL & "SELECT " SQL = SQL & " 得意先M.B AS 得意先コード, " SQL = SQL & " 得意先M.C AS 得意先名称, " SQL = SQL & " Temp.* " SQL = SQL & " FROM 得意先M" SQL = SQL & " LEFT JOIN " SQL = SQL & "(" SQL = SQL & "SELECT " SQL = SQL & " 売上T.H AS T1, " SQL = SQL & " 売上T.D AS 伝票日付, " SQL = SQL & " 売上T.N AS 商品コード, " SQL = SQL & " 商品M.B AS 商品コード, " SQL = SQL & " 商品M.C AS 商品名称 " SQL = SQL & " FROM 売上T" SQL = SQL & " LEFT JOIN 商品M" SQL = SQL & " ON 商品M.B = 売上T.N " SQL = SQL & ") AS Temp " SQL = SQL & " ON 得意先M.B = TEMP.T1 " SQL = SQL & ";"
お礼
回答ありがとうございます。 単純ミスでした。訂正して、思い通りの結果になりました。 今週納品に間に合います。大変助かりました。 本当にありがとうございます。