• ベストアンサー

FROM SQL文 がしたい

いつもお世話になってます。 SQL分の 「SQL1」 「SQL2」 を予めstring変数に入れておいて、 SELECT SQL1.項目x, SQL2.項目y FROM SQL1,SQL2 WHERE SQL1.項目z = SQL2.項目z ということがしたいのですが、そんなことできますか? アクセスのクエリではできたのですが。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

どこからSQLでデータを抽出したいのでしょう。 サーバーから?データテーブルから? 予めString変数に格納。←これが良くわかりません。 参考までに副問合せのSQL文を載せておきます。 SELECT TABLE_A.NAME, TABLE_B.JUSHO FROM (SELECT CODE,NAME FROM NAMETABLE) TABLE_A,(SELECT CODE,JUSHO FROM JUSHOTABLE) TABLE_B WHERE TABLE_A.CODE = TABLE_B.CODE

guttten
質問者

お礼

ぐお~~!!!!!! それです!! ありがとうございます!!!!! できました~超悩みました(T T) string変数に入れるってのは Dim SQL1 AS String SQL1 = "SELECT CODE,NAME FROM NAMETABLE" として、 "SELECT(省略) FROM (" & SQL1 & ") ・・・" としたってことだったんです。 分かりにくいでしょうか?  

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

一般にこのコーナーへの質問は、コードを離れて(たとえ自分が途中までコードを作っていても、それを添えるのは良いが))「内容的にどういうことをしたいか」を書いて質問をすべきです。 SQLならどういうデータ集合から、どういうデータ集合を出したいのか、簡単な例でも挙げて質問すべきです。 副問い合わせの質問らしいが、質問のコードなどメチャメチャで、想像か付きにくい。

guttten
質問者

お礼

以後気をつけます。

関連するQ&A

  • Insert文で・・・

    失礼します。SQL初心者なので質問します。 Insert into Aテーブル Select X , Y , Z From Bテーブル というSQLがあり、Aテーブルの列数を3から4にした際、AテーブルへのInsertの項目を、BテーブルからSelectされたX,Y,Z以外に普通の変数αも新たに作成した4つめの項目として同時にInsertしたい場合、どのようなSQLにすれば良いでしょうか? Insert into Aテーブル (Select X , Y , Z From Bテーブル),α みたいに都合良くはいきませんよね??

  • SQL文について質問させて頂きます。

    いつもお世話になっております。いろいろSQL文の本を読んだのですがわからないので今回もよろしく お願い致します。 SELECT DISTINCT * FROM bukken WHERE (id IN (SELECT fid FROM fudou_kodawari WHERE kid IN (1,4))) というSQL文があるのですが、これだと1,4が1つでも含まれるリストが出てくるのですが1,4が完全に一致しないと出てこないようにするにはどのようにSQL文を変更すれば良いのでしょうか? 何卒よろしくお願い致します。

  • SQL文で質問です

    SQL文で質問です。 テーブルA X NUMBER型 Y DATE型(年月日と時間) テーブルB Z NUMBER型 W DATE型(年月日) A,BをAを主テーブルとして外部結合し、同じ年月日でBには無いデータ を取得したいのですが、 SELECT A.X FROM A,B WHERE A.X = B.Z(+) AND A.Y = B.W(+) AND B.Z IS NULL; というSQL文を実行すると、テーブルAには時間まで登録されているので 実際には取得したいデータが存在しても 「レコードが選択されませんでした」 になってしまいます。このため、 SELECT A.X FROM A,B WHERE A.X = B.Z(+) AND TO_DATE(A.Y,'YYYY/MM/DD') = TO_DATE(B.W,'YYYY/MM/DD')(+) AND B.Z IS NULL; としてみたところ、今度は3行目で 「ORA-00936: 式がありません」 というエラーになってしまいます。 外部結合にしたことがエラーの原因のようなのですが、DATE型の項目を キーにして外部結合にするにはどうすれば良いのでしょうか?

  • sql文の書き方

    いつもこちらで勉強させていただきます。 環境:mysql5.0 PHP5.1.4 apache 2.0.58 いま画面からパラメータ5受け取りました。 これをもってsql文を書こうとするが必須入力項目ではないため一つずつ判断して書いたら30種類の可能性がでてきてすごく長くなってしまいましたがなんか短縮させるいい方法はありませんか?またこれをファンクションで作り直そうとしたらちょっとうまくいかないのでどなたか教えてもらえませんか?ファンクションで渡すパラメータ($sql?$query?あるいは各パラメータですか? )は何にすればいいか?取得したい検索結果は配列です。ファンクション戻り値を連想配列にすることは可能ですか?ちょっと困っています。 $sql = "SELECT * FROM file_tbl WHERE"; // A だけの場合 if ( $b == "" and $c == "" and $d=="" and $e==""){ $sql = $sql." a='%s' order by b DESC,a"; $query = sprintf("$sql", mysql_real_escape_string($a)); // B だけの場合 }else if( $a == "" and $c == "" and $d=="" and $e==""){ $sql = $sql." b >='%s' order by b DESC,a"; $query = sprintf("$sql", mysql_real_escape_string($b)); // Cだけの場合 }else if( $a == "" and $b == "" and $d=="" and $e==""){ $sql = $sql." c <='%s' order by b DESC,a"; . . . // SQL クエリを実行する $result = mysql_query($query); よろしくご教授願います。

    • ベストアンサー
    • MySQL
  • SQL文について

    ACCESSのSQLについてなんですが・・・ MyQuery.SQL = "SELECT * FROM 納品書 WHERE 納品書.納品数 > 0;" などとやった場合、納品数が入っているレコードのみ抽出されると思いますが、 ヒットした件数を知りたいときには、MyRecSet.RecordCountで取得するのでしょうか? (DCNTは使えない) そのヒットした数だけループさせて処理する場合、どのようにするのが一般的でしょうか? (MOVENEXT等を使う?) SQL文で出来ることは、ACCESSの画面でのクエリー定義で出来るものでしょうか。 なんでもかんでも画面で定義する人と、ちょっとしたものでもSQLでガリガリ書く人といる みたいなので、そこらへんは各人の好みの問題なのかなあ、と思いまして・・・。

  • 2つの情報を1つのSQLで取得する方法について

    お世話になります。 SQL文で、下記内容のデータを取得する方法がわかりません。 ・TESTテーブルからA、B、Cの3項目のデータを取得する。 ・但し、この中のC項目については、WHERE句の条件を満たす データの最大値を取得する。 ・項目AおよびBの取得条件は、項目Cと同一条件とする。 ・目的は、項目AおよびBに関しては、WHERE句の条件を満たす  全てのレコードを取得し、項目Cにおいては最大値のみ取得したい。 上記内容を取得しようと考えた場合、 現時点で下記のSQL文を作成して実行しましたが、 うまくデータが取得できません。 SELECT A, B, C FROM TEST WHERE C = (SELECT MAX(C) FROM TEST) AND Z = 'xxxxx' AND Y = 'x' AND X = 'Y' ※項目X, Y, ZはTESTテーブルのカラムです ※上記SQLを、A、Bのみ取得用とCのみ取得用に   それぞれ分解して実行すると、それぞれの結果は   正常に取得できます。 2つの結果を1つのSQLで取得することは可能でしょうか? どなたかご教授願えますか?よろしくお願いいたします。

  • ACCESSのSQLで数値型に変換するには

    こんにちわ。今SQLの書き方が分からなくて大変困っております。 ACCESS2000で、テーブルが一つあるとします。 テーブルの内容は、氏名・点数の2項目だとします。 点数が50点より大きい人を抽出したいのですが、 項目は全てSTRING型にしないといけないため、 単純に比較できません。抽出した項目を数値型に 変換して、比較したいのですが、どのように書いたらいいのでしょうか。 SELECT  Shimei , CAST(Tensuu AS NUMERIC) FROM   Table1 WHERE   Tensuu > 50; このようなクエリを書いてみましたがエラーが出てしまいます。 ORACLEではTO_NUMBERなどの関数があると思うのですが、 ACCESSではどのようにしたらいいのでしょうか?? よろしくお願いします。

  • 副問い合わせの不可解な問題

    情報処理試験を受験しようと思いますが、前提知識の補強に今苦戦しています。SQLの問題で以下の出題趣旨と解答の理由がわかりませんでした。どなたか解釈いただければ幸いです。 問)次の表1と表2に対するSQL文のうち、適切なものはどれか 表1        表2 X | Y |Z |   X | Y |Z | a1 | b1|1|  d1 | e1|1| a2 | b2|1|  d2 | e2|1| a3 | b3|2|  d3 | e3|2| ア.Select X FROM 表1  WHERE ( SELECT Y FROM 表2 ) = Y イ.Select X FROM 表1  WHERE Y IN( SELECT * FROM 表2 WHERE Z = 1) ウ.Select X、Y FROM 表1  WHERE Y IN( SELECT Y FROM 表2 WHERE Z = 1) エ.Select X、Y FROM 表1  WHERE Y =( SELECT Y FROM 表2 WHERE Z = 1) 正解はウですが。ウではどのような表が最終的にできるのかわかりません。副問い合わせの仕組みはおぼろげに他の本でわかりましたが、本設問については何度考えてもわかりません。 どなたか助けてください。、。

  • こんなSQL文

    Oracle8.1.7を使用しております。 以下のようなテーブルに対し、1行目と2行目を削除するSQL文を書きたいのですが、思いつきません。どなたか、アドバイスいただけないでしょうか? 表名:A   B | C ――――――――   2 | 10   2 | 1   1 | 10   1 | 1   1 | 11   1 | 2   1 | 1   3 | 10   2 | 3 変数として、P1=1とP2=2があります。(これは、SQL文の中に直接書くものとします。) ここで、SELECT B,C FROM A WHERE B=1;とSELECT B,C FROM A WHERE B=2;を実行すると、次のようになります。   B | C     B | C ――――――――― ―――――――――   1 | 10    2 | 10   1 | 1     2 | 1   1 | 11    2 | 3   1 | 2   1 | 1 ここで、それぞれの表を見ると、Cの値が一致している部分があります。この一致していて、Bが2の行を削除したいのですが、SQL1文では無理でしょうか? 最近、SQLには慣れてきたつもりだったのですが、こんなとこでつまずくとは・・・どうぞよろしくお願いします。

  • SQL Developerでクエリ実行

    select * from テーブルA where カラムA2 = :バインド変数 select * from テーブルB where カラムB2 = :バインド変数 SQL Developerでエディタに記述した複数のSQLを一度に実行する際に ①同じ名前のバインド変数であっても何度も値を聞いてくるのを1回で済ませたい ②SQLごとにひらく問い合せ結果について名前が問い合せ結果1、問い合せ結果2だとわかりづらいので、固有の名前をクエリ実行時に自動でつけるようにしたい よろしくお願いします。

専門家に質問してみよう