SQLでTEST表からTNO, AREA, SCORE, ADJUST, BIRTH列のデータを取得する方法

このQ&Aのポイント
  • SQL文を使用して、TEST表からTNO列、AREA列の頭3桁、SCORE列の1/10、SCORE列の値にADJUST列の値を加算した値、およびBIRTH列の月末日を表示する方法について説明します。
  • SCORE列の値の1/10は四捨五入して計算されます。また、ADJUST列にはNULL値が含まれている行もあるため、NULL値は0として計算されます。
  • BIRTH列の月末日はYYYY/MM/DDの書式で表示されます。
回答を見る
  • ベストアンサー

SQL 回答を教えてください。

TEST 表に TNO 列、AREA 列、CLASS 列、SCORE 列、ADJUST 列、BIRTH 列があるとします。 この TEST 表から、TNO 列、AREA 列の頭 3 桁、SCORE 列の 1/10、SCORE 列の値に ADJUST列の値 を加算した値、および BIRTH 列の月末日を表示する SQL 文を 1 つ作成してください。SCORE 列の値の 1/10 は、小数点以下を四捨五入してください。BIRTH 列の月末日は、YYYY/MM/DD の書式で表示してください。SCORE 列には NULL 値はふくまれていませんが、ADJUST 列に NULL 値がふくまれている行もあるとします。ADJUST 列の NULL 値は、0 として計算してください。

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

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

  • ベストアンサー
  • yossy_kt
  • ベストアンサー率50% (103/203)
回答No.1

下記のような感じでいかがでしょうか? SELECT TNO, TO_NUMBER(SUBSTR(TO_CHAR(AREA), 0, 3)), ROUND(SCORE / 10), SCORE + NVL(ADJUST, 0), TO_CHAR(LAST_DAY(BIRTH), 'YYYY/MM/DD') FROM TEST;

24nattoman
質問者

お礼

ありがとうございます。

関連するQ&A

  • SQLを教えてください

    下記表があり、列1のデータを列2,列3に分割する方法を 教えてください 表 :t_test 列0:管理No t_test_no VARCHAR2(7) NOT NULL PRIMARY KEY 列1:値(文字) *.**×10の乗数 t_test_data VARCHAR2(20) 列2:値(数値) 列1の「*.**」の部分 t_test_suu NUMBER(3,2) 列3:値(数値) 列1の「10の乗数」の部分 t_test_jousuu NUMBER(1,0) データ例 列0, 列1, 列2, 列3 A000001, 1.20×1, 1.2, 0 A000002, Null, Null, Null A000003, 1.23×100, 1.23, 2 A000004, 0.20×10000, 0.2, 4 A000005, 0.00×10, 0, 1 (補)列1に値がない場合もある

  • SQL文を教えてください

    下記表があり、列0のデータを条件に, 列1,列2,列3の値を更新する方法を教えてください 表 :t_test 列0:管理No t_test_no VARCHAR2(7) NOT NULL PRIMARY KEY 列1:値(文字) t_test_data VARCHAR2(20) 列2:値(数値) t_test_suu NUMBER(3,2) 列3:値(数値) t_test_jousuu NUMBER(1,0) データ例 列0, 列1, 列2, 列3 A000001, abc, 1.2, 0 A000002, Null, Null, Null A000003, a1b2c3, 1.23, 2 A000004, opqrstuv, 0.2, 4 A000005, あいう, 0, 1 列0 条件のデータは必ず既存するものとする つまり、更新(update)処理

  • ACCESSのRound関数について

    お世話になっております。 ACCESSのクエリでRound関数を使い、小数点以下を四捨五入した値を表示させようと思いましたが、なぜか 1876.5→1876 と表示されてしまいます。 同じ列のほかのセルはちゃんと四捨五入した値が表示され、5389.5 も 5390 のように表示されます。 どなたか思い当たる方原因を教えていただけますでしょうか。 よろしくお願いします。

  • エクセルで四捨五入した値を計算

    エクセルでダイエット記録表を作成して肥満度指数(BMI)を算出してます。計算式はエラー表示を出さないようにIFERROR関数を使用しています。値は小数点第2位四捨五入で算出しており、その四捨五入した値に対してさらに計算し四捨五入したいのです。 A1:体重、A2:身長、A3:BMI、A4:目標BMI といった感じです。 例えばA1:86.0、A2:182.0ですとA3:BMI 25.96なので四捨五入して26.0と表示させています。その26.0の値に対して0.96掛けて24.96→25.0と四捨五入表示させたいのです。しかしA3:26.0ではなく実際25.96に対して0.96掛けてしまうため24.92→24.9と表示してしまうのです。 この記録表は社内で回付するためエラー表示は避けたいのでどなたかいい解決方法を早急にお願い致します。!!

  • ファイルメーカーで集計

    ファイルメーカーで表計算時、四捨五入での値、その表示されたそのものの数字で集計するにはどうすればいいのでしょうか。つまり、2.5が四捨五入で3. 2.1が四捨五入で2. 計5と言う数字がほしいのに、今は表示されたすうじではなくそのものの数字(つまり2.5+2.1)で集計され答4.6となってしまいます。マニュアルはあるのですが探してもわかりません。ものすごく初歩的な質問ですが宜しくお願いいたします。

  • エクセル 計算と表

    エクセルで横方向に1マス右に行くごとに決まった値(356.5や485.3など)が足されていき表として表示される時には1桁の位で四捨五入されるようにしたいのですが(計算は小数点第一位まで計算して表は1の位で四捨五入した物を表示)何か良い方法はないでしょうか?教えて下さい。

  • エクセル ゼロ非表示 式の小数点四捨五入させない

    いろいろと試してみましたがゼロを非表示に出来ましたが=E11/2などの値が四捨五入されてしまいます!ゼロを表示せずに四捨五入もさせない方法はありますか??またシート上で表示させなければいけないゼロもあります!

  • エクセルで最大値から調整したいが最大が複数あった場合?

    すみません、助けてください。 エクセルの表計算で困っています。 A1~M1にそれぞれ数値(小数あり)がはいっており、N1に合計が入ります。 A2~M2には上の行の値を10円単位に四捨五入した値が入ります。これを合計してN2に持ってくると、四捨五入の関係でN1を10円単位に四捨五入した値にならないときがあります。 そこでN2はN1を四捨五入した値(これが最優先の値)にし、2行目(A2~M2)の合計と差が出た場合はA2~M2中の最大値から引いたり足したりして調整しています。そのため P2に=MAX(A2:M2)として最大値を求め、3行目A3~M3に最大値と同じならTrueがでるようにして、Trueのある列の2行目から差額を差し引きした額をA4~M4の4行目に表示しています。 ところが、これだと万一、最大値が2つあった場合、二重に差し引きされ、またおかしくなってしまいます。 なにかいい方法はないでしょうか?

  • このSQLを教えてください

    面積のAreaという数値の項目があり、SELECT時に"999m2"と単位付きで表示させたく  SELECT Area + "m2" FROM MyTable というクエリで出来るのですが、Areaの値ががNullや0の時は"m2"を付加させないようにするには、SQLクエリで出来ますでしょうか。

  • エクセルの表示形式で、10の桁で四捨五入した値を表示させるには?

    エクセルの表で、数字を四捨五入する方法にはROUND関数がありますが、関数で変換すると値そのものが変わってしまいます。 値はそのままで四捨五入した数字で表す方法を教えてください。 小数や一桁の整数までの四捨五入であれば、セルの書式設定・表示形式を「数値」にして小数点以下の桁数を指定してやれば簡単ですが、10の桁以上で丸めて表示させる方法を探しています。 例えば、9876→9880と表示させる書式設定の方法です。 値は計算に使うので、ROUND関数で実際に丸めたくないのです。 ユーザ定義を組み合わせるなどで、うまくできませんか?