毎日9時にmdbを自動作成しています。
mdbの中身は1分毎のレコードが作成されており、1日分なので1440レコードが存在しています。
該当する時間になると、数量フィールドに1分毎に値を書き込んでいます。
日時はテキスト型、他は数値型です。
日時フィールドは、mmddhhmm形式です。
日時 数量
04010900 0
04010901 500
04010902 500
04010903 0
04010904 0
04010905 500
04010906 500
04010907 0
04010908 500
04010909 500
04010910 0
動き出した時間を抽出したく、
数量が0の後に、数量へ1以上の値が書き込まれているレコードを1発で抽出したいのですが、可能でしょうか?
上の例ですと
04010901 500
04010905 500
04010908 500
のレコードだけを抽出したいです。
SELECT テーブル名.日時, テーブル名.数量
FROM テーブル名
WHERE (((テーブル名.数量)<>0));
の、SQL文で0を弾いてみたのですが、0以外の全ての値が抽出されてしまっています。
いい抽出条件があれば教えてください、お願いします
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
直接的な回答にはなりませんが
> 毎日9時にmdbを自動作成しています。
> 1日分なので1440レコードが存在しています。
翌日の 8:59 までの日時の形式はどうなっているのでしょうか?
先日のご質問
並び替えているレコードの抽出方法
http://oshiete.goo.ne.jp/qa/8947188.html
を継承しているのなら、前後関係は単純には出来ないと思います。
mdb を作られている=フィールドの追加は容易?ならば
連番用のフィールドを追加される事をお勧めします。
例えばの1)
日時 分番 数量
04010900 0 0
04010901 1 500
04010902 2 500
04010903 3 0
04010904 4 0
04010905 5 500
04010906 6 500
04010907 7 0
04010908 8 500
04010909 9 500
04010910 10 0
この時の分番は、9:00 起点とすると
Public Function MinuteNumber() As Long
Dim i As Long
Dim s As String
Const CT As String = "1/1 9:00"
Const CDT1 As String = "1/1 {%1}"
Const CDT2 As String = "1/2 {%1}"
s = Format(Now, "hh:nn")
If (s >= "09:00") Then
i = DateDiff("n", CT, Replace(CDT1, "{%1}", s))
Else
i = DateDiff("n", CT, Replace(CDT2, "{%1}", s))
End If
MinuteNumber = i
End Function
Public Sub test()
Debug.Print MinuteNumber
End Sub
で求める事が出来るので、データ登録時に埋め込んでおきます。
この状況で、分番を使用してクエリを作成すると
(テーブル名を ★★ と仮定)
SELECT 日時, 数量 FROM ★★ AS Q1 WHERE
数量>0 AND NOT EXISTS
(SELECT 1 FROM ★★ WHERE 数量>0 AND 分番=Q1.分番-1);
この表示が求めたいものになるかと
※ 順を示す用途の連番が必要なだけなので、作り方は自由です
例えばの2)
日時 分番 数量
04010900 0 0
04010900 1 500
04010900 2 500
04010900 3 0
04010900 4 0
04010900 5 500
04010900 6 500
04010900 7 0
04010900 8 500
04010900 9 500
04010900 10 0
日時には起点となる文字列を入れておきます。
実際の日時は、日時+分番
Public Function MNum2Date(vS As Variant, iNum As Long) As String
Dim s As String
If (VarType(vS) <> vbString) Then Exit Function
s = Format(vS, "@@/@@ @@:@@")
MNum2Date = Format(DateAdd("n", iNum, s), "mmddhhnn")
End Function
を用意しておいて、クエリでは
(テーブル名を ▲▲ と仮定)
SELECT MNum2Date(Q1.日時,分番) AS 日時, 数量
FROM ▲▲ AS Q1 WHERE
数量>0 AND NOT EXISTS
(SELECT 1 FROM ▲▲ WHERE 数量>0 AND 分番=Q1.分番-1);
これでも求めたいものになるかと
テーブルを設計する時には、
・貯めたデータを
・どの様な条件で
・速く抽出できるか
速く抽出したいので、その条件となるものを、貯める時に作り込む・・・だと思います
日付 2015/4/2 そのものを入れるフィールドがあって、
抽出条件には 月 しか使わないのなら、月用のフィールドを設けて埋め込んでおくのも「あり」と思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESS クエリの抽出条件に他の...
-
ACCESS 「パラメータの入力」...
-
ACCESSの時間帯の抽出について
-
元データから連続5日以上だった...
-
access クエリの抽出条件を入れ...
-
クエリの進行状況を知りたい。
-
エクセルのマクロで検索・抽出...
-
Access テーブルを分割してエク...
-
アクセス・クエリの抽出条件(...
-
ACCESSのクエリで抽出条件「ま...
-
クエリで不等号を含んだ条件式...
-
PCゲームから音声ファイルを抽...
-
VBAでアクセスのクリエの抽出条...
-
2003アクセス クエリの抽出条...
-
差込印刷での全角表示について...
-
日付型のフィールドに空白を入...
-
SQL文で パラメータが少なすぎ...
-
アクセスのエラー「クエリには...
-
エクセルにおける「フィールド...
-
Access 末尾に0を追加したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESS 「パラメータの入力」...
-
ACCESS クエリの抽出条件に他の...
-
ACCESSのクエリで抽出条件「ま...
-
ACCESSの時間帯の抽出について
-
Access テーブルを分割してエク...
-
アクセスでの抽出方法(日付+時...
-
PCゲームから音声ファイルを抽...
-
access クエリの抽出条件を入れ...
-
ACCESSのクエリで集計
-
エクセルのマクロで検索・抽出...
-
アクセス・クエリの抽出条件(...
-
最大値以外の抽出方法
-
アクセス2000で、DBの0と空白以...
-
accessの日付フィールドから前...
-
元データから連続5日以上だった...
-
ここの赤マルの部分なんていう...
-
ACCESS クエリの抽出条件を動的...
-
ACCESS クエリで”1”でないもの...
-
Access 2003 iif [日付フィール...
-
Accessクエリーでチェックボッ...
おすすめ情報