
oracleのsqlについて質問です。
TESTというテーブルがあり、その項目には時間と名前と値があります。
[TESTテーブル]
TIME NAME ATAI
--------------------
06:00 A 2
08:00 B 3
05:00 C 1
06:00 C 4
06:00 A 2
select文で現在は以下の条件でspoolしてログ出力させているのですが、
select name,avg(ATAI)
from TEST
where TIME >= 06:00
and TIME < 07:00
and NAME in(A,B,C)
group by NAME;
上記の結果が、
NAME ATAI
--------------
A 2
C 4
となり、NAMEのBが出力しない状態です。
ログ出力させたから、その後でエクセルのマクロで集計をするのですが、毎回Bを手で入力してからマクロを実行してと大変なため、
NAME ATAI
--------------
A 2
B 0
C 4
のように上記のwhereの条件にあってなくてもNAMEを強制的に表示させることは可能でしょうか?
oracleは11g
OSはlinuxです。
どなたかわかる方、いらっしゃいましたらご教授お願い致します。
No.2ベストアンサー
- 回答日時:
NAME自体を正規化していないのでしょうか?
もしそうであれば、発行したSQLにTESTテーブルに対して
(SELECT DISTINCT NAME FROM TEST)をサブクエリで
RIGHT JOINしてみてはいかがでしょうか?
No.1
- 回答日時:
TIMEが06:00より低く、07:00以上の場合は0とすればいいのですか?
これであれば、
・WHERE句のTIMEの判定を両方削除
・SELECTするavg(ATAI)をCASE文で判定し、条件以外であれば0を出力する
・条件内であれば、そのままavg(ATAI)を出力する
でできると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
GROUP BYを行った後に結合した...
-
MERGE文を単体テーブルに対して...
-
SQL GROUPで件数の一番多いレコ...
-
固定値を含む結合と複数テーブ...
-
DELETE 文とEXISTSの使い方につ...
-
SQLの書き方(チェックボックス)
-
AccessからOracleへの外部結合
-
SELECTの結果で同一行を複数回...
-
複数テーブルのMAX値の行データ...
-
select句副問い合わせ 値の個...
-
SET句内で複数の条件を指定して...
-
OracleのSQLについて質問があり...
-
半角英数字混在データから数字...
-
select insertで複数テーブルか...
-
何にかが違うから エラーなんで...
-
OracleのSQL*PLUSで、デー...
-
Oracleでの文字列連結サイズの上限
-
実績累計の求め方と意味を教え...
-
レコードセット(ADO.Recordset)...
-
SELECTで1件のみ取得するには?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
GROUP BYを行った後に結合した...
-
select insertで複数テーブルか...
-
select句副問い合わせ 値の個...
-
SELECTの結果で同一行を複数回...
-
MERGE文を単体テーブルに対して...
-
SQL GROUPで件数の一番多いレコ...
-
unionでマージした副問合せを結合
-
外部結合とor条件混在の記述方法
-
複数テーブルのMAX値の行データ...
-
固定値を含む結合と複数テーブ...
-
結合と副問い合わせの違い
-
oracleの分割delete
-
他のテーブルを参照した値はupd...
-
SET句内で複数の条件を指定して...
-
SQLの書き方(チェックボックス)
-
集計後の数値が倍になる
-
unionの結果は集計はできないで...
-
COUNTの取得方法(?)について...
-
SQLでの絞り込み検索
-
最大値の取得
おすすめ情報