- ベストアンサー
ASPによるSQL構文で2つのデータベースを連結
下記のように2つのデータベースを連結させたいのですが うまくいきません。 仕事で緊急なのでわかる方教えてください。 データベースはACCESSです。 テーブル1 A | B(日付) ---|---------- aa |2004/01/01 bb |2004/02/02 テーブル2 C | D(日付) ---|---------- cc |2004/03/03 dd |2004/04/04 ee |2004/05/05 結果 A | BD(日付) | C ---|----------|---- aa |2004/01/01| bb |2004/02/02| |2004/03/03| cc |2004/04/04| dd |2004/05/05| ee strSQL="SELECT A,B,null FROM テーブル1 union all SELECT null,D,C FROM テーブル2" Set RgRs = cnn.Execute(strSQL) 上記の記述で結合させても、うまくいきませんでした。 宜しくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>例えば、日付(B,D)のフィールド名がそれぞれ「Date1」,「Date2」の時、ORDER BY で降順に並び替えることは可能ですか? 序数を使えば項目名は不要。 SELECT A,B,null AS C FROM テーブル1 union all SELECT null AS A,D,C FROM テーブル2 order by 2 DESC >それと、Response.Write で表示させる方法なども教えてほしいです。 これはどうやってSQLの結果を取ってこようとしているかを書いて頂かないと無理です。ADOですか?
その他の回答 (3)
- taka451213
- ベストアンサー率47% (436/922)
こんばんは。 >日付(B,D)のフィールド名がそれぞれ「Date1」,「Date2」の時 フィールド名??? 勝手に解釈すれば、 SELECT * FROM (今のSQL全部) ORDER BY 日付 かな? (^^ゞ
- siteuma
- ベストアンサー率28% (77/271)
こんにちは。 > 2つのデータベースを連結 これは、2つのテーブルを連結、ということでいいですか? また、うまくいかない、というのは、レコードセットから 結果Cの値が取れない、ということでしょうか? 以下のSQLを試してみてください。 (NULLの項目に名前をつける) SELECT A ,B, null as C FROM テーブル1 UNION ALL SELECT null as A, D, C FROM テーブル2;
補足
ありがとうございます。 あと一歩のとこまで出来ました。 結果テーブルを日付順に並び替えての表示の仕方はわかりますか? 例えば、日付(B,D)のフィールド名がそれぞれ「Date1」,「Date2」の時、ORDER BY で降順に並び替えることは可能ですか? それと、Response.Write で表示させる方法なども教えてほしいです。 いろいろ質問してスミマセン。
- taka_tetsu
- ベストアンサー率65% (1020/1553)
NULLのフィールドに別名をつけてみてください。 strSQL="SELECT A,B,null AS C FROM テーブル1 union all SELECT null AS A,D,C FROM テーブル2"
補足
ありがとうございます。 あと一歩のとこまで出来ました。 結果テーブルを日付順に並び替えての表示の仕方はわかりますか? 例えば、日付(B,D)のフィールド名がそれぞれ「Date1」,「Date2」の時、ORDER BY で降順に並び替えることは可能ですか? それと、Response.Write で表示させる方法なども教えてほしいです。 いろいろ質問してスミマセン。
お礼
ありがとう御座います。 表示のさせ方もわかりました。ちなみにADOです。 taka_tetsuの回答はホントに参考になったのでまたよろしくお願いします。