
現在VB.net2005とSQLServer2005にてプログラムを組んでいます。
以下のように、サブクエリにて抽出されたStockテーブルと
Tagテーブルを結合するSQL文を組みました。
*行頭は列番号です。
01- SELECT * FROM
02- (
03- SELECT A1.*, A3.* FROM
04- (
05- SELECT A2.* FROM stock AS A2
06- WHERE A2.StockDay < #日付# '【SQLserverで流す時は "CONVERT(DATETIME, '日付')"】
07- AND A2.ShopCode = '店番号'
08- ) AS A1
09- LEFT JOIN tag AS A3
10- ON A1.StockNo = A3.StockNo
11- ) AS S1
これだとACCESS2000のクエリ上では正しく実行できます。
しかし、.net2005のサーバエクスプローラ上で上記SQL文を流しても、
「列 'StockNo' が 'S1' に複数回指定されました。」
とエラーが出てしまい実行することができません。
行03を "SELECT A1.* FROM" にするとSQLServer2005でも動きますが、
tagテーブルのフィールドが結果に含まれません。
tagテーブルのフィールドも結果に含みたいです。
どなたか原因や回避方法をご存知の方いらっしゃいましたら、
お手数ですが是非ともご教示頂きたいです。
よろしくお願い致します。
No.2ベストアンサー
- 回答日時:
10行目を見るとStockNo でA1,A3共に結合しているので、
A1,A3テーブル共にStockNoというフィールドが存在している
と思います。
そこで、3行目で、A1.*, A3.* としているので
S1というデーぶるには、A1,A3テーブルの全フィールドと
していますが、StockNoフィールドがどちらにも入っているので
どちらを適用してよいかわからず、エラーになっていると思います。
なので、3行目を必要なものだけに書き換えては、いかがでしょうか?
A1.StockNo,A3.hoge1,A3.hoge2・・・・・
私も、試す環境がありませんので、予想だけですが・・・
回答ありがとうございます。
ご教示頂いた内容で解決する事が出来ました。
エラー文を冷静に読めば判りそうな原因でしたね…。
以後気をつけます。
本当にありがとうございました。
No.1
- 回答日時:
環境がないので、試してはいませんが、
03- SELECT A1.*, A3.* FROM
04- (
05- SELECT A2.* FROM stock AS A2
06- WHERE A2.StockDay < #日付# '【SQLserverで流す時は "CONVERT(DATETIME, '日付')"】
07- AND A2.ShopCode = '店番号'
08- ) AS A1
09- LEFT JOIN tag AS A3
10- ON A1.StockNo = A3.StockNo
これだけでは、エラーになってしまうのですか?
この回答への補足
早速の回答ありがとうございます。
書き忘れていましたが、01,02,11の行を外すとエラーにはなりません。
しかし、これはこの後に別の式"S2"とJOINする必要があるために付けています。
S1と別名をつけるのは諦めなければならないでしょうか…?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
SQLのエラー(~付近に不適切な構文があります)
SQL Server
-
『列名 '担当者CD' があいまいです。』
Microsoft ASP
-
型 varchar から型 numeric への変換エラー。
その他(データベース)
-
-
4
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
5
レコードの登録順がおかしい
MySQL
-
6
SQLで列名を変数にできないでしょうか
SQL Server
-
7
SQLで特定の項目の重複のみを排除した全項目を取得する方法
その他(プログラミング・Web制作)
-
8
GROUP BYを行った後に結合したい。
Oracle
-
9
Access VBAで行ラベルが定義されていないというエラーが出ます
Access(アクセス)
-
10
【Transact-sql】 execの結果をoutputパラメータに持たせたい
SQL Server
-
11
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
12
SQLServer sqlcmdが使えない
SQL Server
-
13
列名XXXXが無効です
SQL Server
-
14
FROM の中で CASE を使えるでしょうか
SQL Server
-
15
private static という変数の修飾
Java
-
16
副問合せの書き方について
SQL Server
-
17
「マスタ」と「テーブル」の違いとはなんでしょうか?
Oracle
-
18
オラクルではできるのにSQLSERVERではサブクエリーで複数キーを指定できない?
SQL Server
-
19
新規saの作成方法について
SQL Server
-
20
検索結果の列数を動的に変更したい
SQL Server
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESS検索★ある文字を複数のフ...
-
INSERT INTO ステートメントに...
-
【Access】フォームで自動計算...
-
SQLServer2005のSQL文での別名...
-
ACCESSで400以上のフィールドが...
-
Accessのフィールド数が255しか...
-
アクセス メモ型 255文字...
-
Accessでテーブルの値をテキス...
-
Accessで、固定アルファベット+...
-
ACCESSでの改行コード
-
ACCESS2000「定義されているフ...
-
アクセス VBAで列の入れ替...
-
ACCESSでテーブルのチェックを...
-
主キーはオートナンバー型のID...
-
アクセス エラーを数値「0」に...
-
ACCESSでオートナンバーを任意...
-
フィールドの平均の求め方について
-
Access 昇順・降順で並び替え...
-
ACCESS レーダーチャートのデー...
-
ACCESSでテーブルのフィールド...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【Access】フォームで自動計算...
-
ACCESS検索★ある文字を複数のフ...
-
SQLServer2005のSQL文での別名...
-
ACCESSで400以上のフィールドが...
-
Accessのフィールド数が255しか...
-
INSERT INTO ステートメントに...
-
ACCESSでの改行コード
-
accessのレポートで元になるテ...
-
ACCESSでテーブルのチェックを...
-
ExcelのデータをコピーでACCESS...
-
Accessでテーブルの値をテキス...
-
主キーはオートナンバー型のID...
-
ACCESS VBAにてCSV...
-
ファイルメーカーでCountifの様...
-
アクセスのテーブルデータをCSV...
-
固有レコード識別子の選択とは??
-
ACCESSで和暦を西暦に・・・
-
Access 昇順・降順で並び替え...
-
アクセス A列コピー B列貼り...
-
フィールド数の多すぎる・フィ...
おすすめ情報