• ベストアンサー

SQLの数値の編集について

SQLで金額や数量を抽出するのにカンマ編集をしています。(→to_char(SURYO, '99,999') 金額や数量が0の時、空白をかえす方法はないでしょうか? どんな方法でもいいのですが、できればdecodeを使いたくありません。(やや複雑なSQLのため(^^;) 困っています。できるだけいそぎで、なにか方法を知っている方、アドバイスお願いします。

  • Oracle
  • 回答数1
  • ありがとう数3

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

  • ベストアンサー
  • k-roh
  • ベストアンサー率36% (14/38)
回答No.1

to_char(SURYO, 'B99,999') は使えませんか ?

tamzou
質問者

お礼

おお!ちゃんといきました。 ひとつ勉強になりました。 ありがとうございました(^^)

関連するQ&A

  • 一つのSQLにできませんか??

    表領域のサイズと使用量を抽出するSQLを作成しています。 上は自動拡張サイズと現サイズを抽出するSQL、下は現在の使用量を抽出するSQLです。この二つを一つのSQLで作成ってできないでしょうか?? (1)自動拡張と現サイズを算出 select sysdate syoribi, a.tablespace_name, to_char(sum(a.MAXBYTES)/1024/1024, '999,999,990') jidou, to_char(sum(a.BYTES)/1024/1024, '9,999,990.9') gensaize from dba_data_files a group by a.tablespace_name (2)使用量を算出 select sysdate syoribi, b.tablespace_name, to_char(sum(b.BYTES)/1024/1024, '9,999,990.9') siyoryo from dba_segments b group by b.tablespace_name どうかよろしくお願いします。

  • 1つのSQLで2段階の抽出を行いたい

    恐らくそれほど複雑なSQLではないと思いますが、中々SQLが作成できず困っています。 回答いただければ嬉しいです。 以下のテーブルがあったと仮定します。 テーブル名:  売上げ明細 カラム:  ・商品ID … 売上げ明細なので一意ではありません  ・単価 … 同じ商品IDでも、レコードによって単価は異なります  ・数量 … 1~5の整数のみとします 実際のデータは以下の通りです。 商品ID,単価,数量 1001,50,2 1001,60,5 1002,90,3 1003,60,5 1003,80,4 1003,90,1 1004,60,3 上記データを以下の通り抽出するには、どのようなSQLを組めばいいでしょうか? 1.まず各商品IDの中から単価が最大のレコードだけを取り出す 商品ID,単価,数量 1001,60,5 1002,90,3 1003,90,1 1004,60,3 2.次に数量でgroup by して、件数をカウントする 数量,件数 1,1 3,2 5,1 1つのSQL文で2の結果が得られれば、途中の抽出条件は特に問いません。 ちなみにMySQL5を使っています。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • SQLでの集計について

    こんにちわ。以下のようなテーブルから条件に見合う合計を出したいと思いSQLを書いてみたのですが、 思った結果になりません。 テーブルA ID1 得意先Cd 営業所Cd 日付 1  001    001  2005/09/01 2  001    002  2005/09/01 3  001    001  2005/09/03 テーブルB ID2 ID1 部署 数量 金額 1  1  01  1  1000 2  1  01  1  1000 3  1  02  1  1000 4  2  01  1  1000 5  2  01  1  1000 6  3  01  1  1000 7  3  01  1  1000 8  3  02  1  1000 [抽出結果] 得意先Cd 営業所Cd 日付  部署 数量(Sum) 金額(Sum) 001    001  2005/09/01 01   2   2000 001    001  2005/09/01 02   1   1000 001    001  2005/09/03 01   2   2000 001    001  2005/09/03 02   1   1000 001    002  2005/09/01 01   2   2000 [SQL] select 得意先Cd,営業所Cd,日付,部署,SUM(数量) As '数量計',SUM(金額) As '金額計' from テーブルA AA Inner join テーブルB BB ON (AA.ID1 = BB.ID1) group by 得意先Cd,営業所Cd,日付,部署,数量,金額 order by 得意先Cd,営業所Cd,日付,部署 このSQLを実行すると、日付、部署共に同じ場合でも数量・金額が合計値となりません。 得意先Cd 営業所Cd 日付  部署 数量 金額 001    001  2005/09/01 01 1  1000 001    001  2005/09/01 01 1  1000 どのように変更を加えれば、上記の「抽出結果」にできるのでしょうか? よろしくお願いいたします。

  • sql2005ストアド計算式で金額1*数量1,金額2*数量2などの時に

    sql2005ストアド計算式で金額1*数量1,金額2*数量2などの時に、金額・数量の後ろを変数にして繰り返し処理する方法を教えてください。

  • DB2のSQLコマンドについて教えてください。

    DB2でSQLコマンドを使って、csvファイル形式で情報を収集しています。その際に、各テーブルはスペースで区切られているため、 テーブル内の文字(たとえばOSバージョンであればWindows XP) に空白があると、 あとからエクセルで区切るときに、正しくテーブルごとに区切れません。各テーブル間を「,」(カンマ)等で区切って、抽出できますでしょうか??? すみませんが、どうしてもわかりません。

  • DB2のSQLコマンドについて

    DB2でSQLコマンドを使って、csvファイル形式で情報を収集しています。その際に、各テーブルはスペースで区切られているため、 テーブル内の文字(たとえばOSバージョンであればWindows XP) に空白があると、 あとからエクセルで区切るときに、正しくテーブルごとに区切れません。各テーブル間を「,」(カンマ)等で区切って、抽出できますでしょうか??? すみませんが、どうしてもわかりません。 教えていただけますでしょうか?

    • ベストアンサー
    • MySQL
  • SQL SERVER 店舗毎のTOP10

    表題の件のSQLについてアドバイスお願いいたします。 DB:SQL SERVER 2008 R2 テーブル:売上伝票 カラム 店舗|伝票No|伝票日付|商品CD|商品名|数量|単価|金額(数量x単価) SELECT TOP 10 店舗NO, 商品CD, 商品名, SUM(数量) AS 販売数, SUM(金額)AS 販売金額 FROM 売上伝票 WHERE 伝票日付 BETWEEN [開始日] AND [終了日] GROUP BY 店舗NO,商品CD,商品名, ORDER BY 店舗NO,販売金額 DESC 当然ですが、上記のSQLでは、一番若い店舗NOのトップ10しか抽出できません。 店舗別、販売金額のトップ10を抽出するための、SQL文についてお教えください。

  • 複数の副問合わせにて、一つだけデータがない場合の対処法は?

    テーブルの各区分に応じて、数量を個々に集計するSQLを作成しております。 そして以下のようなSQLを作りました。 SELECT TBLA.SURYO_1 ,TBLB.SURYO_2 , TBLC.SURYO_3 ,TBLD.SURYO_4 FROM (SELECT SUM(SURYO) AS SURYO_1 FROM TEST_TABLE WHERE TEST_KUBUN = '1' GROUP BY SURYO) TBLA, (SELECT SUM(SURYO) AS SURYO_2 FROM TEST_TABLE WHERE TEST_KUBUN = '2' GROUP BY SURYO) TBLB, (SELECT SUM(SURYO) AS SURYO_3 FROM TEST_TABLE WHERE TEST_KUBUN = '3' GROUP BY SURYO) TBLC, (SELECT SUM(SURYO) AS SURYO_4 FROM TEST_TABLE WHERE TEST_KUBUN = '4' GROUP BY SURYO) TBLD しかし、この方法ですと、区分'1','2','4'はデータがあるのに対して、区分'3'は データがないことにより、SQLを実行すると、対象データがないという結果となります。 当然個別にSQLを実行すればよいですが、速度的に4回もSQLを実行するのは効率悪いので、 出来れば一回で行いたいのですけど、区分'3'がデータがなくても、他の3つの区分のデータ を取得する方法はありますでしょうか? よろしくお願いします。

  • MS SQL Server のselectで金額フォーマット表示

    MS SQL Serverでselect時に金額フォーマットをしたいと考えています。Oracleでいうと select to_char(123456, '9,999,999') from dual というやつです。 やり方を教えていただけますか? 宜しくお願いします。

  • SQLの作り方についてご教授下さい。

    SQLの作り方についてご教授下さい。 以下のようなDB及び条件があるとします。 ・DB ----------------------  No   フラグ   金額   1    1     100   2    0     200   3    0     700   3    1     500   3    1     400 ---------------------- ・抽出条件  フラグが1である物のみ抽出対象とします。  同一Noについては、1件しか出力しません。その1件の決め方は  フラグが1である事が前提で、金額が大きい物を取得します。 上記の抽出したい結果 ------------------  No   フラグ   金額   1    1     100   3    1     500 ------------------ これを取得するSQLの作成方法が分かりません。 どのように作成すれば良いでしょうか?