以下のような処理を行いたいと思いますが
SQL文の作成方法を御教授下さい。
【時間DB】
YEARMONDAY,HOUR,FLG,DATA
-----------------------------
20050528 1 1 10
20050528 2 1 20
20050528 3 1 30
20050528 4 1 40
.
.
.
20050528 22 1 40
20050528 23 1 50
20050528 24 1 60
【日DB】
YEARMONDAY,FLG,DATA
-----------------------------
20050528 1 250
処理内容:指定された日付で日DBの作成を行う。
抽出条件:フラグが全て等しい場合はその値を取得
:フラグが一致しない場合は0を取得
上記の場合,SQL文で抽出可能でしょうか?
以上,よろしくお願い致します。
No.3ベストアンサー
- 回答日時:
フラグが揃わない時の、フラグは何を持ってきたいのか
判りませんが・・
こんな感じで似たような結果になるかと。
select
YEARMONDAY,
minflg FLG,
case when minflg=maxflg then sumdata else 0 end DATA
from
(
select YEARMONDAY,min(FLG) minflg,max(FLG) maxflg.sum(DATA) sumdata
from 時間DB
group by YEARMONDAY
)
ご回答ありがとうございます。
上記のSQLを参考にしてみたところ,
うまく抽出することができました。
本当に,ありがとうございました。
No.4
- 回答日時:
表現がよく理解でき無い箇所が多いですが、
精一杯意訳しますと、、、
>指定された日付で「日DB」の作成を行う。
「指定」とはWHRER句で別途直に入れる条件
「日DBの作成を行う」とはcreate database やcreate tableで枠を作成するのではなく、
既に作成済のテーブル「日DB」に対しデータを出力するという事。
出力するのは「時間DB」の指定条件内で項目「DATA」を合計して1件。
ただし、項目「FLG」が指定条件内に2種類以上存在する場合は項目「FLG」を0にして出力。
input:時間DB
output:日DB
日DB.YEARMONDAY = 時間DB.YEARMONDAY = 指定した条件
日DB.FLG = 時間DB.FLG(但し、全部が一致しない場合は0)
日DB.DATA = 時間DB.DATAの合計
で、あってます?
『時間DBからのデータ抽出』と『抽出したデータを日DBに出力』するのは1回のSQLでやりたいのですか?
それともとりあえず時間DBからのデータ抽出部分だけわかればいいのですか?
何度も申し訳ありません。m(__)m
上記の説明で間違いありません。
『時間DBからのデータ抽出』部分が知りたかったです。
無事,解決することができました。
ご迷惑をおかけしたしまして申し訳ありませんでした。
ありがとうございました。
No.2
- 回答日時:
フラグが全て等しいは、
日付で絞った件数と
日付とフラグで絞った件数と
を比較すれば分かります。
「その値」とは何を指しますか?
どの項目を求めたいのか分からないのでSQLの書きようがありませんが、SQLで書けない事はありません。
この回答への補足
早速の回答ありがとうございます。
説明不足で申し訳ありませんでした。
「その値」とは,FLGの値は現在の所1~4の値が入って
くる予定です。
その為,日付で絞った際に1時~24時のレコードがすべて
「1」だった場合は「1」を「2」の場合は「2」というように取得できたらと思っています。
フラグを抽出しないのであれば,
SELECT SUM(DATA) FROM 時間DB
WHERE YEARMONDAY = 20050528
AND HOUR >= 1 AND HOUR <= 24
でよいのでしょうが,この文に
FLGを抽出する条件をつける方法がわかりません。
よろしくお願いします。
No.1
- 回答日時:
>フラグが全て等しい場合
が、データ全件(同一日)の事を指しているのであればSQLでは無理です。
このような場合は、PL/SQLか、Accessなどで更新プログラムを作る必要があります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- その他(ブラウザ) python から COBOL を呼び出すことは可能でしょうか。 1 2023/04/21 21:03
- その他(プログラミング・Web制作) pythonでDBのカラム名で取得したオブジェクトの値を表示したい 1 2022/05/13 03:41
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- Excel(エクセル) 【詳しい方教えて下さい】EXCEL条件に一致する値の複数抽出 9 2022/04/29 10:56
- MySQL SQLについて教えて下さい。 SELECT分で、あるカラムにある日付の 半年先のデータを取って来たい 3 2022/12/07 22:28
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- MySQL SQLでカラムを追加し、条件に合致した場合にフラグ(レコード)を付与する方法 2 2022/05/18 23:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
単一グループのグループ関数で...
-
where句中のtrim関数について
-
アクセスのレポートでレコード...
-
SELECT FOR UPDATE で該当レコ...
-
トランザクションログを出力せ...
-
引数によってwhere句を切り替え...
-
データ
-
group byの並び順を変えるだけ...
-
AccessのSQL文で1件のみヒット...
-
複数レコードを横並び1レコー...
-
osqleditについて
-
SQLで条件にヒットしたレコード...
-
一気に複数のレコードをinsert...
-
【PL/SQL】FROM区に変数を使う方法
-
SQL*Loader Append
-
updateで複数行更新したい
-
レコードの更新履歴について
-
BLOB型項目をSQLの検索条件に指...
-
デフォルトでデータが表示され...
-
ACCESS2007のエクスポート上限
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【PL/SQL】FROM区に変数を使う方法
-
単一グループのグループ関数で...
-
SELECT FOR UPDATE で該当レコ...
-
AccessのSQL文で1件のみヒット...
-
トランザクションログを出力せ...
-
where句中のtrim関数について
-
updateで複数行更新したい
-
group byの並び順を変えるだけ...
-
アクセスのレポートでレコード...
-
SQLで条件にヒットしたレコード...
-
引数によってwhere句を切り替え...
-
SQL*Loader Append
-
「数字で始まらない」ものを抽...
-
データ
-
1レコード全てを改行なしで表...
-
これをSQL文で出来るでしょうか?
-
ORMについて
-
ACCESS レコードの並び順について
-
BLOB型項目をSQLの検索条件に指...
-
【SQL】違うフィールド同士の集...
おすすめ情報