
現在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
-
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
-
4
型 varchar から型 numeric への変換エラー。
その他(データベース)
-
5
DBの定義のサイズを大きくし過ぎると問題ある?
その他(データベース)
-
6
GROUP BYを行った後に結合したい。
Oracle
-
7
SQLで列名を変数にできないでしょうか
SQL Server
-
8
SQLで特定の項目の重複のみを排除した全項目を取得する方法
その他(プログラミング・Web制作)
-
9
レコードの登録順がおかしい
MySQL
-
10
【Transact-sql】 execの結果をoutputパラメータに持たせたい
SQL Server
-
11
Winmerge ファイルの中身は同じなのに黄色くなる
その他(OS)
-
12
【DB】同じトランザクション内でupdateとselectをしたときの結果値
その他(データベース)
-
13
Access VBAで行ラベルが定義されていないというエラーが出ます
Access(アクセス)
-
14
CSVファイルをBULK INSERTでSQLserverに読み込むことは可能?
その他(データベース)
-
15
DataGridの中身をDataSetにテーブルとして保存する方法 (初心者)
Visual Basic(VBA)
-
16
T-SQLで任意の箇所で強制終了する方法
SQL Server
-
17
【PL/SQL】FROM区に変数を使う方法
Oracle
-
18
private static という変数の修飾
Java
-
19
SQLServerでNULLを挿入したいです
SQL Server
-
20
SQLServer sqlcmdが使えない
SQL Server
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESS検索★ある文字を複数のフ...
-
ACCESSでの改行コード
-
アクセスで複数行の一括入力す...
-
ACCESSでオートナンバーを任意...
-
accessのレポートで元になるテ...
-
磁気カードの入力
-
Accessでテーブルの値をテキス...
-
Access 昇順・降順で並び替え...
-
アクセス A列コピー B列貼り...
-
エクセルVBAで5行目からオート...
-
Excel 2019 のピボットテーブル...
-
セルの右クリックで出る項目を...
-
Access テキスト型に対する指定...
-
変数が選択リストにありません
-
顧客IDを入力すると顧客名や住...
-
Accessファイルを作成者以外は...
-
「直需」の意味を教えてください
-
エクセルグラフの凡例スペース
-
ワードで4段組みで文章を書い...
-
ACCESS2000の帳票フォーム詳細...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
INSERT INTO ステートメントに...
-
SQLServer2005のSQL文での別名...
-
accessのレポートで元になるテ...
-
Accessのフィールド数が255しか...
-
Accessでテーブルの値をテキス...
-
ACCESSで400以上のフィールドが...
-
ExcelのデータをコピーでACCESS...
-
ACCESSで和暦を西暦に・・・
-
Accessで、固定アルファベット+...
-
ACCESSでの改行コード
-
ACCESSでテーブルのチェックを...
-
【Access】フォームで自動計算...
-
アクセス メモ型 255文字...
-
ACCESSでオートナンバーを任意...
-
アクセス エラーを数値「0」に...
-
主キーはオートナンバー型のID...
-
固有レコード識別子の選択とは??
-
accessで重複を防ぎたい
-
Access:リンクテーブルマネー...
-
Access 昇順・降順で並び替え...
おすすめ情報