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

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

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

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

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

4回答

5369閲覧

重複(複数条件)している行の項目を抽出したい

kaomaro

総合スコア4

Access

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

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2020/07/13 16:18

編集2020/07/13 16:23

お世話になります。
下記画像のようなデータを対象に、
イメージ説明

entry_datetime、user_name、ansewr_titleが重複している行の
entry_idを抽出したいのですが
Acsessを使用してsqlで処理することは可能でしょうか?
また、可能な場合はどんなクエリーになるかアドバイスを頂けると大変助かります。
(ざっくりした質問ですので、ぴったり回答でなく何となくでも結構です)

通常は画像のようにExcelでcountifを使用して処理しているのですが
今回は条件の一つのentry_datetimeが日付型なので結合すると文字列扱いになり、おかしなことになってしまいます。
イメージ説明

Excelでダメならsqlで処理が可能か??と考えたのですがsql初心者のため
entry_datetime、user_name、ansewr_titleをGroup Byするところまでしか
考えられず、entry_idの抽出の方法が思い浮かびません。

お手数ですが、ご回答のほどよろしくお願い致します。

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

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

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

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

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

guest

回答4

0

Accessのクエリーウイザードには、「重複クエリウイザード」がありますので、試されてはどうですか。

投稿2020/07/15 01:22

sazi

総合スコア25327

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

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

0

エクセルで処理が可能です。

確認

entry_datetimeは分までしか見ない、でよろしいですか?

対応

E列にて単純に =A3&B3&C3 などとしているかと思います。
=TEXT(A3,"YYYY/MM/DD_HH:mm")&B3&C3 と修正してください。
その後はcountifで重複が取れると思います。

解説

Excel上、
日付は整数で1900年1月1日1として起点とした数字が、
時間は小数で24時間で経過秒数を割った数字が、
それぞれ裏で設定されています。

そのため、表示上みえていない秒の設定で別の文字列となってしまうので、
countifで重複を探せなくなっています。

表示上:Excelでいう表示形式でYYYY/MM/DD HH:mm

投稿2020/07/14 04:54

bracket_i

総合スコア193

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

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

0

今回は条件の一つのentry_datetimeが日付型なので結合すると文字列扱いになり、おかしなことになってしまいます

TEXT関数を用いて日付のフォーマットにするのはいかがでしょうか。

excel

1=TEXT(日付のセル,"yyyy/mm/dd hh:mm:ss")

投稿2020/07/14 04:54

Nash-BETA

総合スコア233

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

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

0

Acsessでの回答です。
クエリを下記名称で作成して、SQLのコードを丸ごと複写して下さい。
(Menu:作成Menu・クエリデザイン→デザインMenu・SQL)
クエリ2を実行すると出る筈です。
各クエリ表示後にデザインビューで項目等の関連内容が分かるかと思います。

名称:クエリ1

Accessクエリ

1SELECT [heroku]![entry_datetime] & [heroku]![user_name] & [heroku]![answer_title] AS [key], Sum(1) AS [count], Max(heroku.entry_datetime) AS entry_datetimeの最大, Max(heroku.user_name) AS user_nameの最大, Max(heroku.answer_title) AS answer_titleの最大 2FROM heroku 3GROUP BY [heroku]![entry_datetime] & [heroku]![user_name] & [heroku]![answer_title] 4HAVING (((Sum(1))>1));

名称:クエリ2

Accessクエリ

1SELECT heroku.entry_id, heroku.entry_datetime, heroku.user_name, heroku.answer_title 2FROM heroku INNER JOIN クエリ1 ON (heroku.entry_datetime=クエリ1.entry_datetimeの最大) AND (heroku.user_name=クエリ1.user_nameの最大) AND (heroku.answer_title=クエリ1.answer_titleの最大);

違っています。記載:ansewr_title / テーブル:answer_title。

投稿2020/07/13 23:34

編集2020/07/14 04:58
tosi

総合スコア553

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問