現在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で質問しましょう!
似たような質問が見つかりました
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- Oracle 下記のsqlで取得されるレコード以外を取得する方法ありますでしょうか。 SELECT B.番号, B 2 2022/04/20 23:21
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- MySQL SQLです。下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「昨年の各月の総降 1 2023/07/01 00:32
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
- MySQL PhpMyAdminで作成して実行せよ。 東京23区を、皇居を中心とした4つのエリア(南東, 南西, 1 2023/06/11 11:58
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
このQ&Aを見た人はこんなQ&Aも見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
型 varchar から型 numeric への変換エラー。
その他(データベース)
-
GROUP BYを行った後に結合したい。
Oracle
-
SQL文で右から1文字だけ削除するやり方
MySQL
-
-
4
SQLのエラー(~付近に不適切な構文があります)
SQL Server
-
5
他のデータベースとのテーブル結合
SQL Server
-
6
【SQL】他テーブルに含まれる値に合致する行を抽出
その他(データベース)
-
7
GROUP BYでエラーが発生
SQL Server
-
8
SQLで特定の項目の重複のみを排除した全項目を取得する方法
その他(プログラミング・Web制作)
-
9
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
10
group byで指定したカラム以外のカラムの値を取得したい
PostgreSQL
-
11
SELECT 文の NULL列は?
PostgreSQL
-
12
副問合せの書き方について
SQL Server
-
13
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
14
キーが同じを複数行を1行にまとめるには?
Oracle
-
15
SELECT文で、指定カラム以外の全カラムを一括指定って可能でしょうか
MySQL
-
16
MAX関数を使ってからLEFT JOINしたいのですが・・
PHP
-
17
共通モジュールでDBへの接続と利用方法
Visual Basic(VBA)
-
18
inner joinをすると数がおかしくなります
MySQL
-
19
検索結果の列数を動的に変更したい
SQL Server
-
20
特定条件でWHERE句の条件を変更したい
SQL Server
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessでテーブルの値をテキス...
-
accessのレポートで元になるテ...
-
【Access】フォームで自動計算...
-
Accessのフィールド数が255しか...
-
通貨型で\\0の時、何も表示しな...
-
ACCESSでテーブルのフィールド...
-
ACCESS2000「定義されているフ...
-
ACCESSで400以上のフィールドが...
-
アクセス メモ型 255文字...
-
ExcelのデータをコピーでACCESS...
-
ACCESSでの改行コード
-
ACCESS 入力文字数制限
-
ファイルメーカープロVer.8のチ...
-
FileMakerの繰り返しフィールド...
-
ACCESSで和暦を西暦に・・・
-
Accessで別途保存の画像ファイ...
-
ODBC--リンクテーブル'XXXX'で...
-
Accessで連続データってできま...
-
アクセスで複数行の一括入力す...
-
アクセス エラーを数値「0」に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessでテーブルの値をテキス...
-
アクセス エラーを数値「0」に...
-
ACCESSでの改行コード
-
Accessのフィールド数が255しか...
-
accessのレポートで元になるテ...
-
Accessで、固定アルファベット+...
-
INSERT INTO ステートメントに...
-
Access 昇順・降順で並び替え...
-
ExcelのデータをコピーでACCESS...
-
SQLServer2005のSQL文での別名...
-
ACCESSで400以上のフィールドが...
-
アクセス VBAで列の入れ替...
-
IT用語について質問です。 以前...
-
【Access】フォームで自動計算...
-
accessで重複を防ぎたい
-
ACCESSでテーブルのチェックを...
-
ACCESSで和暦を西暦に・・・
-
アクセス メモ型 255文字...
-
主キーはオートナンバー型のID...
-
ACCESSでオートナンバーを任意...
おすすめ情報