• 締切済み

Oracle クエリ

ks0902の回答

  • ks0902
  • ベストアンサー率85% (6/7)
回答No.2

これでどうでしょうか? select A.R1 as R1, sum(A.リンゴ) as リンゴ, sum(A.イチゴ) as イチゴ, sum(A.マンゴ) as マンゴ from (select R1, nvl(decode(R2,'リンゴ',1,0),0) as リンゴ, nvl(decode(R2,'イチゴ',1,0),0) as イチゴ, nvl(decode(R2,'マンゴ',1,0),0) as マンゴ from 元テーブル ) A group by A.R1;

関連するQ&A

  • Access クエリについて

    Accessのテーブル1に、フィールド「コード」「回数」があり、レコードとして A,32 B,20 C,13 ・・・というように、ランダムなコードと回数がセットされているとします。コードは主キーです。 このテーブル1を元にしたクエリで A,1 A,2 A,3 ・・・ A,32 B,1 B,2 ・・・ B,20 C,1 C,2 ・・・ C,13 というように、コードごとに「回数」と同じ数のレコードがクエリ上に生成されるようにしたいのですが、こういうことは出来るのでしょうか?出来ればSQLで回答いただけないでしょうか。

  • クエリファイルから外部のクエリファイルを実行する方法

    SQL Server2000です。 DB構築を行うにあたり、インストールで実行するクエリファイルから、 別のクエリファイル(実際にテーブル、ストアドを構築する内容を記述)を実行できる方法がわからず悩んでいます。 a.sql・・・b.sqlやc.sqlを統括するクエリファイル b.sql、c.sql・・・テーブル構成、ストアドを構築するクエリファイル SQL クエリアナライザからa.sqlのクエリファイルを開いて、 クエリ実行するイメージでいます。 a.sqlからb.sqlを呼び出すには、どのような記述をすればよろしいのでしょうか? よろしくお願いします。

  • Oracle9i SQLについて

    Oracle9i SQLについて 環境:WinXP(SP3),Oracle9i,VB2005 受注のテーブルから未出荷で品番毎に一番早い納期の 受注数を取得したいのですが上手くいきません ご教授願います。 SQL出力結果イメージ 品番  納期   受注数 A 2010/06/01 6 B 2010/05/26 10 C 2010/05/24 1

  • ORACLEでのSQLについて

    SQLについて教えてください。 今、VBからORACLEデータベースにSQLを投げる処理を作っているのですが、 一つわからないことがあります。 例えば、アクセスでは、クエリで新しいテーブルを作成するという考え方がありますが データベースがORACLEでも同じようなことができるのでしょうか? 別に新しいテーブルを作成することに執着するわけではなく、テーブルのデータを削除 してから、そのテーブルにSQLにて引っ張ってきたデータを入れる という ものでもいいと考えています。そのやり方でもかまいませんので教えてください。 宜しくお願いします。 Oracle8.1.6 vb6

  • SQL ServerにOracleのリンクサーバー

    SQL Server 2000にOracle 11g R2のインスタンスをリンクサーバーとして追加したいです 以下の通りSQL Server 2000にOracle 11g R2のインスタンスをリンクサーバーとして追加することは 可能でしょうか。 <サーバー1> OS:Windows Server 2003 Standard Edition DBMS:SQL Server 2000 設定内容: (1)Oracle 11g R2のクライアントをインストール (2)サーバー2のインスタンスへのリンクサーバーを設定し、テーブルを参照(更新はしない) <サーバー2> OS:Windows Server 2008 R2 Standard Edition DBMS:Oracle 11g R2 設定内容:あるインスタンスにサーバー1が参照するためのテーブルを準備 また、さらに別のクライアントPCからMS Access 2010でサーバー1のリンクサーバーに対して パススルークエリを発行したりAccessにリンクテーブルを作成することは可能でしょうか。 SQL Server向けのSQL文が使えますでしょうか。

  • oracle 条件分岐について

    oracle10gです。 テーブルAから取得した項目aaaが"1"のとき、 テーブルBから項目bbbを取得する それ以外の場合、 テーブルCから項目cccを取得する という内容のSQLを一度に実行したいのですが、 ifやcaseで実行可能でしょうか。 ご教授いただきたいです。 よろしくお願いいたします。

  • Accessのクエリーで。

    テーブルA ID テーブルB ID 年 種類 テーブルC ID 年 種類 備考 テーブルCはBの詳細をかいたようなものになっていて、希望した時だけみられるようになっています(クリックする)。 これらのテーブルをもとにクエリーを作成しました。 テーブルA-B-Cの「ID」でリレーションがされています。 B-Cの「年」もリレーションされています。 たとえば、10というIDの人がいて、2001年と2002年のデータがあったとします。 ID | 年   | 種類 | 備考 10 | 2001 | みかん | 10 | 2002 | りんご | 青森産 10 | 2002 | みかん |愛媛産 10 | 2002 | めろん | というような感じだとします。 これがそれぞれABCに入っています。 クエリーのリレーションで「種類」にリレーションを貼らないと、 10 | 2002 | りんご | 青森産 10 | 2002 | りんご | 愛媛産 10 | 2002 | りんご | 10 | 2002 | みかん | 青森産 10 | 2002 | みかん | 愛媛産 10 | 2002 | みかん | 10 | 2002 | めろん | 青森産 10 | 2002 | めろん | 愛媛産 10 | 2002 | めろん | とダブッてしまい、「種類」でリレーションをはると 10 | 2002 | りんご | 青森産 10 | 2002 | みかん | 愛媛産 と、備考に何かが入ってるものしか出なくなってしまいます。 これを回避するにはどのようにしたらいいのでしょうか? よろしくお願いします。 AC2000です。

  • oracle 複数列を1列にまとめる

    oracle 複数列のデータ中身を別のテーブルの1列にインサートしたい ご存知の方、オラクルプロの方、 若輩者の私にアドバイス等ご指導受けたまりたく存じます。 以下のようなテーブルがあったとします。 テーブルA MID | K1 | K2 |K3 ------------------------- 011 |ああ |いい |うう  012 |ええ |おお |かか 特定の列を選択しての、Updateには成功しました。 update テーブルA set K1 = (select K1|| ' ' ||K2|| ' '||K3 from テーブルA where MID = '011') where MID = '011'; これを別のテーブルに全行Insertしたいのです。約5千行はあり、環境の制限によりSQL文のみしか使えません。 テーブルB MID |K1 ----------------------- 011 |ああ いい うう 012 |ええ おお かか 以下のようなSQLで正しいでしょうか? insert into テーブルA (K1) select K1|| ' ' ||K2|| ' '||K3 from テーブルB; 上記の方法で実施しましたが、下記のようなエラーメッセージが表示されます。MID項目が主キーのため、NULL不可なことはわかりますが、指定していないMIDが何故でてくるのでしょう? SQL Error: ORA-01400: テーブルA (MID) にはNULLは挿入できません。 環境情報: Oracle 10g  検証環境:Oracle SQL Developerあり 本番環境:Oracle SQL Developerなし、SQLのみ使用可

  • Oracle 10.2.0 でMAX集計がおかしい!?

    VB6 で oo4o を使って Oracle DB開発をしています。 Oralce 8.1.6 から Oracle10.2.0 にサーバを切り替えました。 bというテーブルがあって、 a c d ---- ------ ----- 10 2 1 20 3 1 30 4 1 40 5 1 50 6 2 というデータがあったとします。 Select MAX(a) as a from b WHERE d=1 のようなSQLをVBから発行したときに SQL*PLUSでは、 a ---- 40 という結果が返ってくるのですが、VBでは、 a --- 10 20 30 40 のように複数行のレコードセットが帰ってきます。そのため、最大行を取得できません。Oracle8 のときは、SQL*PLUSと同じ結果が返ってきていました。ちなみに Select MAX(a) as a from b WHERE d=1 GROUP BY d ~~~~~~~~~~ と、GROUP BYを付けると、ただしい(SQL_PLUSと同じ値)値が取得できます。 Oracle10.2.0の問題か、oo4oの問題かと考えています。 ちなみにoo4oのオブジェクトは、 CreateObject("OracleInProcServer.XOraSession") で作成していて、クライアントのバージョンは 9.2.0.4.4です。 長文で失礼しますが、どなたかSQLを変更せずに解決する方法をご存じないでしょうか?

  • アクセスの2つのテーブルから重複しないものを抜き出す方法について

    アクセスの2つのテーブルから重複しないものを抜き出す方法について 例えば テーブル Aには ID   価格    商品   1  200    りんご   2  150    みかん   3  180    りんご   4  230    いちご テーブル Bには   1  150    みかん   2  180    りんご とあった場合 A-B のクエリーを実行して   1  200    りんご   2  230    いちご という結果を得たいのですが、どのようにすれば出来るのでしょうか よろしくお願いします。