質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

解決済

1回答

947閲覧

Accessのサブクエリで前回日付を取得する方法を教えてください。

Yamachan777

総合スコア5

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

0クリップ

投稿2021/07/27 09:17

Accessでシステムを作成しております。
利用者からの要望で前回日付と今回日付の日数を見たいという要望があり、出来ればクエリで実現できればとWeb検索を行ったところ下記ページを見つけました。
https://www.accessdbstudy.net/entry/20080627/p1
早速見様見真似で実装したところ当該ページのようにあるキーの直前の日付を拾ってこれたのですが、例えば下記のように担当者毎に前回日付を拾うことは出来ませんでした。
(テーブルA)

売上NO|担当者|日付|売上金額

0001|A|2021/7/1|15,000
0002|B|2021/7/1|10,000
0003|A|2021/7/3|20,000
0004|A|2021/7/5|18,000
0005|B|2021/7/6|12,000

(クエリで実現したいこと) ソートは担当者(昇順)、日付(降順)

売上NO|担当者|日付|売上金額|前回日付|日数

0004|A|2021/7/5|18,000|2021/7/3|2
0003|A|2021/7/3|20,000|2021/7/1|2
0001|A|2021/7/1|15,000||
0005|B|2021/7/6|12.000|2021/7/1|5
0002|B|2021/7/1|10,000||

このようなクエリは実現可能なのでしょうか?
何卒アドバイスをお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

相関副問合せによって、同じ担当者の過去の日付の最大を求めるようにすれば良いかと思います。

SQL

1select ta.* 2 ,(select max(日付) from テーブルA where 担当者=ta.担当者 and 日付 < ta.日付) as 前回日付 3from テーブルA as ta 4order by 担当者, 日付 desc

尚、サブクエリーを使用したクエリーは更新できませんので、更新が必要ならサブクエリーをDMax()に置き換えて下さい。

投稿2021/07/27 09:54

sazi

総合スコア25327

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Yamachan777

2021/07/27 23:39

sazi様 アドバイスありがとうございました。 教えていただいた方法で望み通りのデータを取得することが出来ました。 また今回のクエリーは参照のみですが、更新時のことも教えていただきありがとうございました。 今後ともよろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問