SQL文(クエリ)をご教授ください。
Oracle8において下記のようなテーブルが有り、復数台の装置に関して
毎日365日データを蓄積しています。
日によってデータが採取できない装置があるため、号機に抜けが
生じる事があります。
また実際は装置は14000台程度のデータを収集しています
テーブル名:t_temp
号機 日付 基板温度 Disk温度 外気温度
01 2010/03/01 50 70 25
02 2010/03/01 49 73 25
03 2010/03/01 52 72 25
04 2010/03/01 49 71 25
01 2010/03/02 56 77 26
02 2010/03/02 57 75 26
04 2010/03/02 55 74 27
01 2010/03/03 49 71 24
03 2010/03/03 50 72 25
04 2010/03/03 48 70 23
以下データは続く
このテーブルから、以下のような2パターンの検索をしたいと考えています。
1.号機ごとに、基板温度が50度以上となった最初の日付と基板温度を検索
2.号機ごとに、基板温度が最高温度の日付と基板温度を検索
参考書なども眺めてみたのですが、糸口が見出せずにいます。
クエリ例と、その説明を説明をいただけると幸いです。
実行環境は、MS-ACCESSからパススルークエリで実行しています。
補足が必要でしたら、ご指摘いただけると幸いです。
皆様のお力を借用したく、お願いいたします。
No.3ベストアンサー
- 回答日時:
t1、t2はエイリアス(別名)です。
fromの後ろでselectしているのでt2というテーブルに見せかけてます。
元テーブルはt_tempだけなのですがselect from で2つのテーブルを扱っているように見せてます。
RDBの例題で、社員マスタに社員/上長が混在しているようなサンプルがあると思いますよ。
Oracle の EMPLOYEES等のサンプル
この回答への補足
度々すみません。
1項、2項ともt1,t2を使用しない例で検証してみました。
結果は残念ながら上手くいきませんでした。
ODBCの呼び出しが上手くいかないようです。
SQL Plusから実行してみたいと思います。
ところで追加の質問があります。
"where (号機, 日付) in"または"where (号機, 基板温度) in "といった
記述をされていますが、通常は
"where 列名 in (値1, 値2)"といった使用方法ではないのでしょうか。
例で記述していただいた書式ですと、どのような意味になるのでしょうか。
よろしければご教授ください。
よろしくお願いいたします。
No.2
- 回答日時:
#1です。
すみません。From忘れてましたね。1.号機ごとに、基板温度が50度以上となった最初の日付と基板温度を検索
select 号機, 日付, 基板温度
from t_temp
where (号機, 日付) in
(
select 号機,min(日付)
from t_temp
where 基板温度 >= 50
group by 号機
)
order by 号機
または
select t1.号機, t1.日付, t1.基板温度
from t_temp t1,
(select 号機, min(日付) as 日付
from t_temp
where 基板温度 >= 50
group by 号機
) t2
where t1.号機 = t2.号機
and t1.日付 = t2.日付
order by 1, 2
のほうがわかりやすいかも。
2.号機ごとに、基板温度が最高温度の日付と基板温度を検索
select 号機, 日付, 基板温度
from t_temp
where (号機, 基板温度) in
(
select 号機,max(基板温度)
from t_temp
group by 号機
)
order by 号機, 日付
または
select t1.号機, t1.日付, t1.基板温度
from t_temp t1,
(select 号機,max(基板温度) as 基板温度
from t_temp
group by 号機
) t2
where t1.号機 = t2.号機
and t1.基板温度 = t2.基板温度
order by 1, 2
のほうがわかりやすいかも。
この回答への補足
度々すみません。
1項、2項ともt1,t2を使用しない例で検証してみました。
結果は残念ながら上手くいきませんでした。
ODBCの呼び出しが上手くいかないようです。
SQL Plusから実行してみたいと思います。
ところで追加の質問があります。
"where (号機, 日付) in"または"where (号機, 基板温度) in "といった
記述をされていますが、通常は
"where 列名 in (値1, 値2)"といった使用方法ではないのでしょうか。
例で記述していただいた書式ですと、どのような意味になるのでしょうか。
よろしければご教授ください。
よろしくお願いいたします。
早速のご回答ありがとうございます。
実機で検証してみます。
ところで、"select t1.号機, t1.日付, t1.基板温度"のところの
"t1.号機"などは、どのような意味になるのでしょうか。
t1やt2を使用した例での、
select以下の部分、from以下の部分等々が、
正直どのような意味合いの記述なのかがわかりません。
それぞれ二つの記述例を見比べるしかないのでしょうか。
No.1
- 回答日時:
実機での試験をしてませんが。
1は、50度以上になったことが無いと号機が返りません。必要に応じて外部結合を検討してください。
特に2は、最高温度が複数日あるとおかしくなるかも。
いずれも、副問い合わせ()内のSelectで、あたりをつけます。
外側のSelectのWhereを()で列挙するところがポイント。
1.号機ごとに、基板温度が50度以上となった最初の日付と基板温度を検索
select 号機, 日付, 基板温度
where (号機, 日付) in
(
select 号機,min(日付)
where 基板温度 >= 50
group by 号機
)
order by 号機
2.号機ごとに、基板温度が最高温度の日付と基板温度を検索
select 号機, 日付, 基板温度
where (号機, 基板温度) in
(
select 号機,max(基板温度)
group by 号機
)
order by 号機, 日付
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(開発・運用・管理) おんどとりWebStorage APIから温度情報を取得し表示したい 2 2023/08/03 09:53
- 建設業・製造業 下敷きにするプラスチック材料 1 2023/05/17 11:17
- MySQL PhpMyAdminで作成して実行せよ。 東京23区を、皇居を中心とした4つのエリア(南東, 南西, 1 2023/06/11 11:58
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- 一戸建て 冬の床の温度を教えてください 4 2023/02/13 07:00
- ホテル・旅館 ビジネスホテルのエアコンについて 先日1拍で新宿のビジネスホテルにアゴダサイトから泊まりました エア 4 2022/08/03 17:55
- 妊活 生理予定日2日前に基礎体温が上がる事はありますか? 高温期13日目でここ数日36.85前後でしたが昨 2 2022/04/28 19:49
- 宇宙科学・天文学・天気 4月の下旬の東京は、上着いらないですかね?? 去年のデータとして最高気温21度くらい、最低気温12度 2 2022/03/24 19:35
- 工学 【はんだ付け】ハンダ付けでワニクリップに導線を半田付けしていて断線して導線とワニクリップが外れたので 5 2022/04/23 21:30
- 中古車 車の水温計について質問です。 冬に中古車を買って夏場に乗るのは初めてなのですが、一般道を普通の速度( 4 2022/06/29 06:17
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
今日の日付が入った行のデータ...
-
エクセルの日付に時差を加算 #V...
-
Accessの数値から時間に変換す...
-
SQLサーバで和暦から西暦に変換...
-
yyyy/M/dをyyyy/MM/ddに変換
-
日付型なら変数の先頭になん...
-
特定の日付が第何週目にあるか...
-
14桁の日付(YYYYMMDDHHMMSS)を...
-
1個のSQL分で2種類以上の...
-
SQLite3のtext→date変換について
-
Oracle10gのsql分についての質...
-
sysdateのフォーマットが変わり...
-
テーブルの主キーをdate型...
-
エクセルVBA 今日の日付行...
-
オラクルのレコードカウントの...
-
日付書式に変換でこまっています!
-
Excelグラフの日付軸の日付がず...
-
一秒ごとに更新をかける方法
-
oracle 最新日付との比較
-
SQLで部分的にGROUP BYしたいとき
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessの数値から時間に変換す...
-
今日の日付が入った行のデータ...
-
SQLで部分的にGROUP BYしたいとき
-
SQLサーバで和暦から西暦に変換...
-
14桁の日付(YYYYMMDDHHMMSS)を...
-
エクセル 日付による並べ替え...
-
テーブルの主キーをdate型...
-
重複するIDのデータを1行にま...
-
oracle 文字列 01:45 を時間に...
-
日付型なら変数の先頭になん...
-
指定した年月までのデータを取...
-
Excelグラフの日付軸の日付がず...
-
日付書式に変換でこまっています!
-
エクセルVBA 今日の日付行...
-
wordの差し込み印刷での日付表示
-
日付の切り出し方法について
-
yyyy/M/dをyyyy/MM/ddに変換
-
SQL ブレーク処理について
-
23時59分59秒までのデータを抽...
-
WHERE句にて「30日前から今日ま...
おすすめ情報