
レポートにて1件のレコードを複数レコードとして表示。したいです。
マスタというテーブルに時間1・結果1・時間2・結果2・時間3・結果3という項目があり、
これをクエリにて別々のレコードとしてレポートに表示したいのです。時間1・時間2・時間3すべて入っているものは3件として
時間1・結果1
時間2・結果2
時間3・結果3
時間1・時間2のみ入っているものは2件として。
ユニオンクエリというのを使うと出来そうですが、よく分かりません。
SQLビューにどのように書けばよろしいでしょうか?
テーブルの構成は今から直すことは出来ない状態で…。
No.1ベストアンサー
- 回答日時:
ご推測の通り、ユニオンクエリで対応できます。
基本的には、各レコードに対応する選択クエリに相当するSQL文を、
「Union」で結合するだけですので、覚えてしまえばそれほど
難しくはないかと思います。
1)値が重複するデータがひとつに集約されてよい場合:
Select マスタ.時間1 As 時間, マスタ.結果1 As 結果 From マスタ
Union
Select マスタ.時間2 As 時間, マスタ.結果2 As 結果 From マスタ
Union
Select マスタ.時間3 As 時間, マスタ.結果3 As 結果 From マスタ;
※「Union」の後の改行は、クエリを閉じると自動で削除されます。
※わかりやすさ優先(のつもり)で3つのSelect文の体裁を揃えましたが、
実際には2行目以降の「As 時間」「As 結果」は無視されます。
2)値が重複するデータも集約せずに表示する場合:
Select マスタ.時間1 As 時間, マスタ.結果1 As 結果 From マスタ
Union All
Select マスタ.時間2 As 時間, マスタ.結果2 As 結果 From マスタ
Union All
Select マスタ.時間3 As 時間, マスタ.結果3 As 結果 From マスタ;
3)「マスタ」テーブルにレコードを特定できる「ID」などがあって、
それを同時に出力する場合:
Select マスタ.ID As ID, マスタ.時間1 As 時間, マスタ.結果1 As 結果 From マスタ
Union
Select マスタ.ID As ID, マスタ.時間2 As 時間, マスタ.結果2 As 結果 From マスタ
Union
Select マスタ.ID As ID, マスタ.時間3 As 時間, マスタ.結果3 As 結果 From マスタ
・・・以上です。
なお、これらのユニオンクエリを基にしてテーブル作成クエリを組むことも可能ですので、
あわせて参考までに。
この回答への補足
ありがとうございます。
As 時間 の部分は任意でつけてよいのですよね?
クエリ式 マスタ.時間1 as 時間の構文エラー:演算子がありませんとでます(>_<)
No.2
- 回答日時:
No.1です。
> As 時間 の部分は任意でつけてよいのですよね?
はい、基本的には大丈夫です。
(但し、「+(半角プラス)」単独など、一部の文字は使用すると
エラーになるので、完全に任意というわけではありません)
> 演算子がありませんとでます(>_<)
どういうふうにしたときにそのエラーが出るか、あたりをつけて
確認したところ、「As」の前後のスペースのどちらか一方でも
全角にしてしまうと、Asが演算子としてではなく、前後と連続した
文字列としてして認識されてしまい、ご質問のエラーとなることが
わかりました。
ですので、全角スペースを半角スペースに修正していただけば、
ご質問のエラーは出なくなると思います。
また、補足欄の文を見ると、「マスタ」の後のピリオドも全角
となっているようなので、こちらも半角にしておいて下さい。
(このままだと「マスタ.時間1」がパラメータとして要求される
ことになりますので・・・)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQL文で、合計が0のレコードを...
-
EXISTSを使ったDELETE文
-
ACCESSでクエリ作成時複数のフ...
-
DBが複雑すぎる
-
差し込み後、元データを変更し...
-
特定の文字列で列を区切るには?
-
フィルターかけた後、重複を除...
-
外部参照してるキーを主キーに...
-
顧客データベースを作る場合、...
-
updateでグループ化
-
Oracleのデータ型、NUMBERについて
-
for whichの使い方
-
Outlook 送受信エラー
-
SQLで特定の項目の重複のみを排...
-
カーソル宣言をIFで分けられま...
-
Excelシート上で右クリックがで...
-
Excel2000でレーダーチャートの...
-
カーソル0件の時にエラーを発生...
-
データの先頭文字の置換
-
VBAのAccessでDATE型のINSERT
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXISTSを使ったDELETE文
-
SQL文で、合計が0のレコードを...
-
ACCESS 商品毎の最新の単価を設...
-
Accessの実行時エラーについて
-
日付により変動する「単価」を...
-
ACCESS ツリービューの作り方
-
ACCESSでクエリ作成時複数のフ...
-
AS400にてサブファイルレコード...
-
前月の取得について
-
AccessVBA データのエクスポート
-
ACCESSのマスタの変更について
-
DBが複雑すぎる
-
サブクエリの書き方
-
無駄に見える結合の回数を減ら...
-
アクセス フィールド名に変数...
-
フィールドの数値を四捨五入の...
-
Access2013で商品に複数の単価...
-
異なるデータベース間のテーブ...
-
テーブル名の トラン マスタ...
-
access2000について
おすすめ情報