• 締切済み
  • 困ってます

このクエリを教えてください

ID、Name、Date、Pointのカラムがあり、レコードは300程度です。 データベースに登録されているデータで、Dateの最終日から2日間の データを一回のクエリ発行で取り出すようなクエリを作りたいのですが どのようになりますでしょうか? それともMAX(Date)で最終日を取り出して、それからBETWEENなどを つかって取得という2段階にクエリ実行するしかないでしょうか?

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数52
  • ありがとう数2

みんなの回答

  • 回答No.1
noname#182251

このようなSQL文では如何でしょうか? SELECT * FROM goo WHERE (((goo.Date)<(SELECT Max(Date) FROM goo) And (goo.Date)>(SELECT Max(Date)-2 FROM goo)));

共感・感謝の気持ちを伝えよう!

質問者からの補足

できました!ありがとうございます。 ただこの方法で、たとえばMAX(Date)が月曜日で、 土日をはさんだ場合は2日間のデータを取得するのは無理ですよね? SQLでそこまで考えてやることは可能でしょうか? 贅沢言ってすいません・・・。

関連するQ&A

  • データベースのクエリについて教えてください。

    データベースのクエリについて教えてください。 電話番号カラムと携帯電話番号カラムが定義してあります。 どちらかのカラムにはデータが入っていて、その片方のカラムは空となっている場合、 電話番号か携帯電話番号の、どちらか空ではないデータのみを取り出したいのですが、 どのようなクエリにしたらよいでしょうか? よろしくお願いします。

  • クエリの結果をテキストボックスに表示させたい

    http://oshiete.coneco.net/qa4711278.html&#8203; こちらでも質問した者ですが このクエリの結果を フォーム1のテキストボックス1に 「Q今日の日付クエリ」の結果を表示させたいのですが どうすればいいのでしょうか? 「Q今日の日付」クエリの中身は SELECT Count(Tデータ!日付) AS 今日の個数 FROM Tデータ WHERE (((Tデータ!日付) Between Date() And Date()+1)); です。今日の日付の個数が返ります。 コントロールソースに「=Q今日の日付!今日の個数」と いれると「#Name?」となってしまいます。なぜでしょう?どうすれば数字(個数)が返るか教えてください!

  • Accessのクエリのプロパティ

    クエリのプロパティの「最大レコード数」について教えてください!! 「ODBCデータベースからAccessデータベースにデータを返すクエリやSQLデータベースからAccessプロジェクトにデータを返すビューで返される最大レコード数を指定します。」 という説明を見たのですが、なんのことやら。。。 わかりやすく教えてほしいのです。

  • あるIDごとの最高値のレコード抽出について

    下記のようなテーブルがあるとします。 それぞれの人の最高得点であるレコードを抽出したいのですが可能でしょうか。 テーブル:result no id point date -------------------- 1 A 60 ... 2 A 70 3 B 50 4 B 90 期待出力 no id point date ------------------- 2 A 70 ... 4 B 90 自分でも色々考えたつもりですが、例えば select max(point) from result group by id; とすると 70,90 という値は抽出されますが、該当レコードの全カラムを出力させたいです。 もし同じidで同じpointのレコードがあった場合は、dateの新しいほうを優先したいです。 id,point,dateがまったく同じレコードは存在しないと仮定します。 この他にもdistinct等も考えましたが、指定したカラムが重複した場合どのレコードが選択されるかは 不定のようですので使えそうにありません。 そもそもSQLだけでこのような出力が可能かどうかもわかりません…。 テーブルの設計が悪いというのもあるのでしょうか。 どなたかご助言くだされば幸いです。

  • sqlのクエリについて

    C#からデータベースsql server 2008にデータセット、データリードする簡単なアプリを作りました sqlのクエリについて質問です リードしたデータのTOP行と最終行の2つのレコードを取得する場合どうすればいいでしょうか? select TOP A,B,C From test WHERE なら TOP行のみになってしまいます 最終行のレコードの取得方法は、いい方法が思い浮かびません。 欲しいのは、TOP行と最終行の2行のみなので、困ってしまいました。 知恵をお借り願えればと思います。 よろしくお願いいたします。

  • 難しいクエリなので教えてください。

    データベース:MYSQLのバージョン4です。 1ヶ月予約していない人を抽出せよ、というクエリです。 テーブルは 顧客テーブル(t_customer)と予約テーブル(t_yoyaku)です。 顧客テーブルのカラムは、顧客番号(no)、氏名(name)です。 予約テーブルのカラムは、顧客番号(no)と予約日付(day)です。 以下のようにレコードが登録されています。 顧客テーブル 顧客番号 氏名 1  鈴木太郎 2  佐藤一朗 3  高橋次郎 4  山田五郎 予約テーブル 顧客番号 予約日付 1  2008-4-10 1  2008-5-11 1  2008-6-12 1  2008-7-10 2  2008-5-12 2  2008-6-10 3  2008-6-11 3  2008-8-12 ※予約テーブルに登録されていない場合(山田五郎)も合わせて 抽出 すみませんが、上記のクエリについてどなたか 教えてください。お願いします。

    • ベストアンサー
    • MySQL
  • MAX関数と範囲指定

    AのデータをBにコピーをしたいのですが、AからBにうつすときはその日の一番新しいものだけにしたいのです。 例えば、昨日と一昨日のデータの一番新しいやつをコピーしたいのです。今日のデータが入っているので単純にMAXで取り出せないのです。 INSERT INTO B (DATE,NAME,ID) SELECT (DATE,NAME,ID,更新日時) FROM B WHERE DATE = (SELECT MAX(DATE) FROM A WHERE DATE BETWEEN 一昨日 AND 昨日); 根本的に違っているんでしょうか

  • 合計を求めるクエリーについて

    1日から30日の間に誰が何のパンを何個売ったのかを調査できるようなデータベースを作ってみました。 クエリーの抽出条件はBetween「○○○」And「○○○」で日付で指定するようにしました。 (日付ですがデータ型はテキスト型です) 該当するレコードが30件あったとすると30件のレコードが抽出されますが、この期間内に誰が何のパンを何個売ったかの合計がわかるようにするにはどうすればいいのでしょうか? なんかうまく説明できなくてすみませんが教えてください。 よろしくお願いいたします。

  • データベース上の全てのテーブルに対するクエリ

    mySQLでデータベース内の全てのテーブルに対するクエリーに関して質問があります(mySQL 5.5)。 仮に 「ichinensei」というデータベースにテーブル「1_kumi」「2_kumi」「3_kumi」 .....と複数のテーブルがあるとします。 テーブルは全て同じデータ形式で仮に name (char) | weight (int) という名前と体重の情報が登録されているとします。 やりたいことは全てのテーブルに対しweightを検索キーとして該当するレコードのnameをとってくる、という操作です。 weight(体重)が41,42,43,50,51であるレコードの名前を列挙するためには SELECT name FROM (全てのテーブル) WHERE weight IN (41,42,43,50,51) 上記のようなクエリ文が考えられますが(全てのテーブル)に対する検索を1文で済ます方法が分かりません。 実際の作業ではテーブル数が数十個なのでなるべくunionなどを使ってテーブルの数分クエリ文を書くというのは避けたいと考えています。 このような場合どのようなクエリ文が使えるのでしょうか?

    • ベストアンサー
    • MySQL
  • 特定のレコードのみの更新クエリ

    過去ログより、項目の更新クエリはありましたが、 特定のレコードの更新方法はどう考えればいいのかアドバイスください。 テーブルには、毎月あたらしいデータがインポートされていきますが、 前月と比べて同じレコードは削除して常に新しいレコードにしておきたいのですが、これは一旦、重複クエリで重複レコードすべて削除してから新しいデータをインポートする2段階の方法をとるしかないのでしょうか?