![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
No.2ベストアンサー
- 回答日時:
>5分以上データが取得できなかった時にもその時刻のデータを直前のデータで補完したいです。
テーブルの中身が2009/06/01 00:00:00の1レコードしかなかったと仮定してください。
指定時刻が2009/06/01 00:00:00であった場合(これ以降5分おきに取得)、
2009/06/01 00:00:00
2009/06/01 00:00:00
2009/06/01 00:00:00
2009/06/01 00:00:00
・・・・・
2009/06/01 00:00:00
と(2009/06/30 23:55:55までの)8,640件を返したいという意味ですか?
(テーブルの中身が1件もない場合は8,640件のNULLが返される)
だとすると、1クエリでの実行は無理です(1件しかないデータを8,640件にすることはできないから)。
Transact-SQLのコードを書いてください(これもまた一例ですが)。。
DECLARE @T datetime--指定時刻
SET @T='2009/06/01 00:00:00'
DECLARE @WT datetime
DECLARE @WTBL TABLE (T datetime)
SET @WT=@T
WHILE (MONTH(@WT)=MONTH(@T))
BEGIN
INSERT INTO @WTBL VALUES (@WT)
SET @WT=DATEADD(n,5,@WT)
END
SELECT
(SELECT MAX([時刻]) FROM TIMETBL WHERE [時刻]<=t.T)
FROM @WTBL t
この回答への補足
ありがとうございます。
>(2009/06/30 23:55:55までの)8,640件を返したいという意味ですか?
>(テーブルの中身が1件もない場合は8,640件のNULLが返される)
やりたいことはそういうことです。
VB2008からSQL Server2008にデータを取りにいきます。
プログラムで5分ごとの時間が入った配列を作って
1レコードずつ素直に検索しにいくのとどっちが早いでしょうか?
8,640件の検索が最大で16セット発生します。
LINQというやつでもだめなのかな~。
No.3
- 回答日時:
>プログラムで5分ごとの時間が入った配列を作って1レコードずつ素直に検索しにいくのとどっちが早いでしょうか?
8,640回クエリを実行しようと思っているならば、圧倒的にその方が遅いです。
8,640件×16のデータを取ってきて、最終的に必要なのが何か読めませんので、なんとも言えませんが、
8,640件×16のデータ全部を使わず、絞り込むのであれば、8,640件×16のデータを取ってくること自体がナンセンスです。
最初から必要なものだけ拾ってくればいいと思います。
>LINQというやつでもだめなのかな~
LINQは処理速度をアップするためのものではありませんよ。
No.1
- 回答日時:
あくまで一例ですが。
。データを指定時刻からの経過時間で5分単位のグループにして(ただし、ちょうど5分のボーダーのところは下のグループに含めるために1引く)、その中で逆順に連番を振り、各グループの1番目だけ抽出する。
SELECT [時刻]
FROM
(SELECT *,
ROW_NUMBER() OVER (PARTITION BY (DATEDIFF(n,'指定時刻',[時刻])-1)/5 ORDER BY [時刻] DESC) SEQ
FROM TIMETBL
WHERE [時刻]>='指定時刻') tmp
WHERE SEQ=1
この回答への補足
ありがとうございます。
だいたいできている気がしますが、
1日の00:00が取得できないことと
5分以上データが取得できなかった時にも
その時刻のデータを直前のデータで補完したいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 3 2022/06/12 11:17
- 日本株 楽天RSS2での移動平均の取得について 1 2022/07/28 21:48
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- Visual Basic(VBA) 追記する列を増やしたい 2つのデータを検索・照合して元データにないデータを下記マクロで商品名を追記し 9 2022/10/05 10:50
- Excel(エクセル) VBA : スクレイピングできない 4 2023/05/12 22:26
- Visual Basic(VBA) マクロについて教えてください 2 2023/06/09 16:01
- Visual Basic(VBA) マクロについて教えてください。 3 2023/06/09 17:37
- Visual Basic(VBA) VBA 毎日取得するデータを順番に反映していく方法 6 2023/08/26 16:22
- JavaScript javaScriptで画面に値を入れるには 1 2022/08/14 12:27
- MySQL SQLについて教えて下さい。 SELECT分で、あるカラムにある日付の 半年先のデータを取って来たい 3 2022/12/07 22:28
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESS2007 フォーム 「バリア...
-
<SQL>重複しているデータの場合...
-
SQLのエラー(~付近に不適切な...
-
大学でSQLの授業があるのですが...
-
SQL文 複数実行
-
SQLCMDにて教えていただきたい...
-
SQL Date型の列から年月だけを...
-
【VB.NET】日付型の列にNULLを...
-
sqlで、600行あるテーブルを100...
-
sqlserverで集計結果をUPDATEし...
-
SQLサーバー接続 特定のPCがWin...
-
DTexec でSSISパッケージを実行...
-
SQLサーバで和暦から西暦に変換...
-
SQL 不要な文字列を削除したい
-
Tverは無料でしょうか?
-
サーバー破壊
-
Visuaal Studio Community 2022...
-
Access2021 「ISNULL関数には引...
-
甘いものがすきなのってなおせ...
-
SQLて何ですか!
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SELECTでn行目から最後もしくは...
-
accessで複数年度のデータを蓄...
-
iPhoneのシステムデータ、3日前...
-
AccessとSQL Serverの連携について
-
Null同士の結合
-
Oracleクライアントの共存方法...
-
教えて頂けないでしょうか
-
5分ごとのデータ取得
-
プログラムからODBCデータソー...
-
銀行系DBの堅牢度
-
大量同時並行処理時のMySQL
-
SQL サーバのCPU使用率が高い
-
「中山」で検索すると「青山」...
-
アクセスと統一伝票
-
IMPORT処理速度
-
サッポロビールカルサスのデー...
-
二つのテーブルで比較
-
SQLサーバーで構築したシス...
-
Oracleの外部結合について
-
Acrobat5.0、Access等を駆使し...
おすすめ情報