• 締切済み

oracleでデータの取得

こんにちは! ソフト開発の初心者です。 以下のようなデータがあります。 ID NAME 年月   種類 金額 ------------------------------ 1  本社 200712  01  123 2  東京 200712  01  153 1  本社 200801  02  321 2  東京 200801  02  351 上記のデータを下記のように表示したいです。 種類をカラムにして値を取得します。 ID NAME 年月   01  02 ------------------------------ 1  本社 200712  123  0 2  東京 200712  153  0 1  本社 200801  0  321 2  東京 200801  0  351 以上、ご教授お願い致します。

みんなの回答

  • assault852
  • ベストアンサー率48% (1364/2797)
回答No.2

「種類」は01と02しかないのでしょうか? 別テーブルに吐き出した方が簡単ではありませんか?

shen1730
質問者

補足

assault852様 「種類」は変動になるのでやはり 別テーブルに吐き出す方法しかないでしょうね。 こちらの方法で進めて参ります。 どうも、ありがとうございました。

  • assault852
  • ベストアンサー率48% (1364/2797)
回答No.1

PL/SQLなど扱えるのでしょうか?

shen1730
質問者

補足

assault852さん 返事が遅くなりました。申し訳ないです。 PL/SQLでもかまわないので ぜひご教授ください。

関連するQ&A

  • MAX値を条件にデータを取得するには?

    SQL文で困っています。 ご教授下さい。 下記のようなデータがあった場合、それぞれの区分毎に 年月が最大(最新)のデータを取得したいです。 (実際には1レコードにその他項目があり、それらも取得します。) <検索対象データ> 区分 年月   金額 ----------------------------- A   200412  600 A   200503  560 B   200311  600 B   200508  1000 B   200504  560 C   200508  400 C   200301  1100 <取得したいデータ> 区分 年月   金額 ----------------------------- A   200503  560 B   200508  1000 C   200508  400 よろしくお願いします。

  • データの取得方法

    Aテーブル{ id char(3) not null, name varchar(10), a_no char(5), b_no char(5), c_no char(5), date timestamp } Bマスタ{ no char(5), name char(10) } 上記のようなDBがあるのですがAテーブルのa_no、b_no、c_noに入るのはBマスタのnoになります。 下記のようにデータを取得したい場合、どうすればうまく取得できるのでしょうか。 A.id, A.name, A.a_no, カラム名をname1としてB.name, b_no, カラム名をname2としてB.name, c_no, カラム名をname3としてB.name そんなに難しいことではないと思うのですが、考えれば考えるだけ頭の中でこんがらがってきて困っています。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • 重複しているデータを取得したい

    [TBL_TEMP] ID 年月1  年月2 項目A  項目B -------------------------------------------- 1 200909 200910 aaaa bbbb 2 200807 200809 aaaa bbbb 3 200909 200910 aaaa bbbb 4 200909 200909 aaaa bbbb 5 200807 200809 aaaa bbbb 上記のようなデータがあり、年月1と年月2でグルーピングして、重複しているデータを抽出する場合は、以下のSQLでデータを取得できます。 SELECT MIN(ID),年月1,年月2 FROM TBL_TEMP GROUP BY 年月1,年月2 HAVING COUNT(1) >= 2 上記のSQLの場合、重複データの中でIDが一番小さいもののみが取得されるため、ID=1、2の2データが取得できます。 これを重複データ全件、つまり、ID=1,2,3,5のデータを取得するには、SQLをどのように書けばよいのかがわかりません。 どなたかアドバイスを頂けないでしょうか? よろしくお願いいたします。

  • MySQLでvarchar型のデータの最大値を取得する方法

    お世話になります。 どなたかご回答&アドバイスをよろしくお願い致します。 MySQLで、以下のように登録されているデータがあるとします。 ID(varchar) | name(varchar) 0000001 | ああああ 0000002 | いいいい 0000004 | ううううう それで、登録されているIDの最大値+1を取得したいのです。 IDのカラムのデータ型がIntならmaxで取得できると思うのですが、データ型がvarcharなので…。 レコードの数+1というのは、IDが必ずしも1から飛びがなく登録されているとは限らないので、 その方法は危ないのでできません。 上の例だと、「0000005」を取得したいです。 どうぞご教授お願い致します。

    • ベストアンサー
    • PHP
  • 区分ごとに2番目に新しいデータを取得するには?

    下記のようなデータがあった場合、それぞれの区分毎に年月が最新のデータと2番目に最新のデータを取得したいです。 <検索対象データ> 区分 年月   金額 ----------------------------- A   200411  700 A   200412  600 A   200503  560 B   200311  600 B   200508  1000 B   200504  560 C   200508  400 C   200301  1100 <取得したいデータ> (1)区分ことに年月が最新のデータ 区分 年月   金額 ----------------------------- A   200503  560 B   200508  1000 C   200508  400 (2)区分ことに年月が2番目に最新のデータ 区分 年月   金額 ----------------------------- A   200412  600 B   200504  560 C   200301  1100 (1)に関してはこちらに回答があります。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1439772 (2)のデータを取得する方法を教えていただきたい。 (1)と(2)の混在でもかまいません。 よろしくお願いします。

  • MySQL,PHPを使いデータとデータ件数を取得する関数

    よろしくお願いします。 このようなテーブルがあります。 テーブル名GAME id name    price  genre_id  comment 1 FF1    100  1  おもしろい 2 カービー 200 3 丸い赤 3 バイオ   250 2 怖い : : : : : テーブル名GENRE genre_id genre_name 1 RPG 2 ホラー 3 バイオ このようなテーブルがあるとして、 検索したいカラム(id,name,g_id,comment)に対して検索キーワードに部分一致をしたものデータからソートしたいカラムと昇順降順のようにソートしページ数から (ページ数-1)*10+1 ~ ページ数*10 最終ページのときは (ページ数-1)*10+1 ~ 最終ページ の部分のデータを取得する関数を作りたいです。表示するデータは id name genre_name です。 ページャーも使うので検索カラムにたいして検索ワードに部分一致した結果件数も戻り値として返したいです。 上記のsql文を教えてください。 またデータと結果件数を返す関数を作ることは可能でしょうか? 関数の引数は以下のように5つにするつもりです。 function getList($search_column,$search_word,$sort_column,$sort_order,$page_number) どうかご教授ください。

    • 締切済み
    • PHP
  • html内の値を取得

    下記開発環境で開発を行っています。 VS2005 vb.net あるString型の変数に値が入っています。 その値は下記のようなhtmlです。 <html> ←ここから <head></head> <body> <div id='test1'> OK </div> </body></html> ←ここまで 実装したいことは <div id='test1'> で囲まれた”OK”という値を取得することです。 文字列をHtmlDocumentに格納するとGetAttributeメソッドで取得できるのらしいですが、 方法がわかりません。←すみません、表現がただしくないかもしれません。 どなたかご存知の方ご教授お願い致します。

  • oracleの「????」表記について

    お世話になります。 現在、oracle xeを使用し、DBの勉強をしております。 1点わからないところがありましたので、お手数ですがご教授をお願いします。 varchar2をデータ型とするカラムに対し、日本語でinsert文で挿入すると、 「????」で表現されてしまいます。 以下が入力したSQL文です ------------------------------------------------ insert into TABLELIST(ID,NAME) values(11,'テスト'); ------------------------------------------------ カラムIDのデータ型:char(2) カラムNAMEのデータ型:varchar2(9) これは文字コードの違いによるものなのでしょうか。 oracle xeでは文字コードがデフォルトで「utf-8」になっているのですが、 utf-8では日本語の入力は不可能ということでしょうか。

  • カラム情報(主キー、データ型、桁数等)を取得するには

    テーブルに格納されているカラム情報(カラム名、主キー、データ型、データの桁数)を取得したいと考えています。 主キー情報とそれに付随するカラム情報は現在下記のSQL文で取得しています。 SELECT C.TABLE_NAME , COL.COLUMN_NAME, C.CONSTRAINT_TYPE, COL2.DATA_TYPE, COL2.DATA_LENGTH FROM USER_CONSTRAINTS C, USER_CONS_COLUMNS COL, USER_TAB_COLUMNS COL2 WHERE C.TABLE_NAME = COL.TABLE_NAME AND C.CONSTRAINT_NAME = COL.CONSTRAINT_NAME AND C.TABLE_NAME = COL2.TABLE_NAME AND COL.COLUMN_NAME = COL2.COLUMN_NAME AND C.CONSTRAINT_TYPE = 'P' AND UPPER(C.TABLE_NAME) = UPPER('テーブル名') ORDER BY C.TABLE_NAME, COL.POSITION ここで、主キー以外のカラムに対しても同様にカラム情報を取得したいのですが、どのように取得すればよろしいでしょうか? ※カラム名、主キー有無、データ型、桁数 でカラム情報を取得できれば最も良いのですが、 主キー情報を除いた全体のカラム情報を取得する事ができれば、こちらの情報でも助かります 宜しくお願い致します。

  • 前月の取得について

    テーブルAには、年月、単価と言うカラムを持っており、 データとしては、下記のように保持しております。 2011/01/01 100 2011/02/01 200 2011/03/01 300 2011/04/01 400 データを取得する際にWHERE句に「2011/02/01」と指定した場合に 「2011/02/01」を当月とし、 「2011/01/01」を前月として取得、 「2011/02/01」の単価と「2011/01/01」の単価を差分として取得したいのですが、 サブクエリだと複数のデータがあるため、エラーで落ちてしまいます。 何か良い取得方法があればご教授頂けないでしょうか。 SELECT 単価 as 当月, (例:200) 単価 as 前月, (例:100) 単価 as 差分 (例:100) FROM テーブルA WHERE 年月='2011/02/01' 以上、よろしくお願い致します。