• ベストアンサー

SQL文のテーブルについて

cse_riの回答

  • ベストアンサー
  • cse_ri
  • ベストアンサー率29% (74/253)
回答No.5

Oracleの場合、"create table **** as select ~" を実行すれば、検索結果に従ったテーブルを作成できます。 Oracleのユーザ"scott"で説明します。 ユーザ"scott"で以下のSelect文を実行してください。 [実行SQL文] select dept.deptno, dept.dname, emp.empno, emp.ename from dept, emp where dept.deptno=emp.deptno and dept.deptno=10;  ↓ [実行結果] DEPTNO DNAME EMPNO ENAME ------------------------------------------ 10 ACCOUNTING 7782 CLARK 10 ACCOUNTING 7839 KING 10 ACCOUNTING 7934 MILLER 次に、この検索結果を元に新規にテーブルを作成するSQL文を実行します。 [実行SQL文] create table test1 as select dept.deptno, dept.dname, emp.empno, emp.ename from dept, emp where dept.deptno=emp.deptno and dept.deptno=10; 上記のテーブルの内容を確認します。 [実行SQL文] select * from test1;  ↓ [実行結果] DEPTNO DNAME EMPNO ENAME ------------------------------------------ 10 ACCOUNTING 7782 CLARK 10 ACCOUNTING 7839 KING 10 ACCOUNTING 7934 MILLER

関連するQ&A

  • SQL文のテーブルについて

    テーブルの列を後から加えていきたいのですが後ろから順番に加えるんじゃな くて前にあった列の間に加えたりとかはできるのでしょうか? そういったSQLがあればぜひお願いします。

  • SQL文を教えてください

    Oracle8i 下記、3つの表に日付を持っています これらのをユニーク且つ降順に取得するSQL文を 教えてください 表A:T_TESA  列:T_TESA_IDATE 型:DATE  例:2006/02/01 2006/02/02 2006/02/04 表B:T_TESB  列:T_TESB_IDATE 型:DATE  例:2006/02/01 2006/02/02 2006/02/03 表C:T_TESC  列:T_TESC_IDATE 型:DATE  例:2006/02/01 2006/01/30 2006/02/03 結果:  2006/02/04  2006/02/03  2006/02/02  2006/02/01  2006/01/30

  • AccessのテーブルをSQL文にしたい

    urizakaです。 さて、今回質問したいのは、Accessで作ったテーブルをSQL文にする方法です。 具体的には、ACCESSで作ったテーブルを、 CREATE TABLE ××× (              ) INSERT… というSQL文にしたいのですが、これはどうすれば良いのでしょうか? すみませんが、教えてください。            

  • SQL SELECT文について

    本来SELECT文で列を表示させる時には列名をいれますが、 例) select 列1,列2 from テーブル名 列名ではなく列を数字で指定したい場合はどうすればいいのでしょうか? ちなみに select 2,3 from テーブル名 のやり方だと駄目でした。 ご教授おねがいします。

  • SQL文について

    MYSQLで次のような表を作成するためのSQLを教えてください。 (1)PLAYERS表のPID列はその表の主キー PLAYERS表(選手表) PID(選手ID) PANME(選手氏名)   M001    JUMBO OZAKI         M002    KING KAZU   M003    ANIKI KANEMOTO (2)RESULTS表のGIDとPID列はその表の複合キーであり、主キーになっている。 RESULTS表(成績表) GID(大会ID) PID(選手ID) SCORE(スコア) HIUCUP08    M001     72 HIUCUP08    M002     75 JPNCUP09    M001     70 JPNCUP09    M002     76 JPNCUP09    M003     68 (3)各々の表について設定されたデータのSQL のとき、次のようなSQL文を入力してもエラーが出ます。 (1)PLAYERSテーブル作成SQL ---------- CREATE TABLE PLAYERS ( PID char(4) NOT NULL, PNAME varchar(255) NOT NULL, PRIMARY KEY (PID) ); ---------- (2)RESULTSテーブル作成SQL ---------- CREATE TABLE RESULTS ( GID char(8) NOT NULL, PID char(4) NOT NULL, SCORE int(11) NOT NULL, PRIMARY KEY (GID,PID) ); ---------- (3)データ作成SQL <PLAYERSテーブル> ---------- INSERT INTO PLAYERS (PID, PNAME) VALUES ('M001', 'JUMBO OZAKI'), ('M002', 'KING KAZU'), ('M003', 'ANIKI KANEMOTO'); ---------- <RESULTSテーブル> ---------- INSERT INTO RESULTS (GID, PID, SCORE) VALUES ('HIUCUP08', 'M001', 72), ('HIUCUP08', 'M002', 75), ('JPNCUP09', 'M001', 70), ('JPNCUP09', 'M002', 76), ('JPNCUP09', 'M003', 68); ---------- なぜエラーが発生するのか教えてください。

    • ベストアンサー
    • MySQL
  • SQL文でテーブルを作りたいのですが・・・

    テーブルを作りたいのですが、思い描くテーブルが作れず、困っています・・・ 例えばMさんがA→B→C→Dと旅行に行ったとします。 そのとき、行った場所によって日付が登録されるようにしたいと思っています。 このように、別な人もいろいろと旅行し、それぞれの日付があり、どんどんと格納していきます。 最初に ID id 日付 date 場所 point (名前はとりあえず、IDとします) でテーブルを作ろうとしましたが、これだとID一つにつき、日付と場所も一つずつしか入りませんよね? どういったテーブルを作ればいいでしょうか? 思い描くテーブルは下記のような感じです。 ID     日付      場所 -------------- 1  |2010/10/06 |  A   |2010/10/14 |  B   |2010/10/20 |  C   |2010/10/25 |  D -------------------------- 2  |2010/10/23 |  B    |2010/10/24 |  A    |2010/10/25 |  D    |2010/10/27 |  C -------------------------- 3  |2010/10/25 |  D    |2010/10/27 |  C    |2010/11/03 |  B    |2010/11/04 |  A    |2010/11/07 |  D    |2010/11/10 |  C ------------------------- 4  |2010/11/10 | B    |2010/11/15 |  A    |2010/11/16 |  D ・・・・・・・・・・・・・・・ このように一つのIDに対して、日付と場所がランダムの数で格納したいのですが、これって可能でしょうか? テーブルを2つ(以上)作り、外部キーを使ってもかまいません。 また、足りなければ違うIDなどでカバーしてもかまいません。 実際は、このようなテーブルを作り、一人毎の動線を調べるために活用したいと思っています。 Mさん:今日はAに行って、明日はBに行き、明後日はCに行った。すなわち動線は・・・のような感じです。 SQL文でテーブルを作ってください。 補足事項等ありましたらご指摘下さい。追加いたします。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • SQL文を発行すると。。。

    Oracle初心者です。 SQL*PlusであるテーブルにSelect文を発行するといつまでも検索し続けて止まりません(繰り返されているようです)。レコードは一件しか入っていませんので一件だけ検索しても同じです。 他のテーブルはそんなことないのですがあるテーブルだけこの現象が発生します。 列は200近くあります。 ご存知の方いらっしゃったら教えて下さい。よろしくお願いします。

  • SQL(SELECT文)を教えてください

    SQL Serverを勉強中です。 以下のようなテーブルに、同一の日付に複数の名称・値のセットが存在します。 Date(日付)  Name(名称) Value(値) 20130101      a      10 20130101      b      20 20130101      c      30 20130202      a      5 20130202      b      10 20130202      c      15 このデータを、SQLのSELECT文で取得し、以下のような表を作りたいと考えています。 a b c 20130101 10 20 30 20130202 5 10 15 行が日付、列が名称になっています。 このように取得できるSQL文を教えてください。よろしくお願いします。

  • SQL文 2つのテーブルから、グループごとの合計を求める

    テーブル名:グループ表 ID   グループ名 ------------------------- 100   Aグループ 101   Bグループ 102   Cグループ 103   Dグループ 104   Eグループ テーブル名:売上表 ID   売上年月日   売上額 ------------------------------ 101   20090401   1000 101   20090501   2000 102   20090401   2500 102   20090503   1500 103   20090404   3000 103   20090506   4000 上記の2つのテーブルがあります。 グループごとの売上合計一覧を出します。 ■求めたいSELECT文結果 グループ名   合計(売上額) ---------------------- Aグループ    0 Bグループ   3000 Cグループ   4000 Dグループ   7000 Eグループ    0 select グループ名,sum(売上額)  from (select グループ名,売上額     from グループ表,売上表      where グループ表.ID = 売上表.ID)   group by グループ名 では、 グループ名   合計(売上額) ---------------------- Bグループ   3000 Cグループ   4000 Dグループ   7000 となってしまい、うまくいきません・・・ どうように書いたらよろしいでしょうか?

  • 3つのテーブルからの抽出SQL

    表1・・・商品ID 表2・・・商品ID、賞味期限、価格ID 表3・・・価格ID、商品価格 このような表があるとします。 ここで、商品価格ごとにもっとも賞味期限の古い商品IDを表示させてい場合、どのようなSQL文を書けばよいでしょうか? また、オラクル8でお願いします。 例題となるテーブルとレコードが紛らわしいですが、よろしくお願いいたします。