Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5150 / 9994 ←次へ | 前へ→

【8074】Re:クエリの式
発言  小僧  - 06/6/28(水) 10:04 -

引用なし
パスワード
   ▼あおぎんさん、クロ さん:
おはようございます。

> 給付内容Tに[1学期分A額]、[1学期分B額]、[2学期分額]、[3学期分額]、
> [1学期分A支給日]、[1学期分B支給日]、[2学期分支給日]、[3学期分支給日]・・
> というフィールドを作成し

この辺に今回の様な問題が発生する原因があるのかもしれませんね。

あおぎんさんがお作りになっているテーブル構成ですと
どうしてもクエリを使う際に制約ができてしまいます。

今回の場合は項目が増えていく訳ではない
( 4学期、5学期と追加されて行くわけではない)ため
テーブル構成そのものを否定するわけではないのですが、
ご提示の様に「支給日」でデータを抜き出したい場合などは不便ですよね。

以下一案です。

T_給付内容
SEQ    名前    項目    金額      日付
1    Aさん    学期1_A   \10,000    2006/04/01
2    Bさん    学期1_A   \8,000     2006/04/02
3    Cさん    学期1_A   \12,000    2006/04/01
4    Aさん    学期1_B   \10,000    2006/06/01
5    Bさん    学期1_B   \8,000     2006/06/01
6    Cさん    学期1_B   \12,000    2006/06/01
7    Aさん    学期2    \20,000    2006/09/01
8    Bさん    学期2    \16,000    2006/09/01
9    Cさん    学期2    \24,000    2006/09/04


以下をクエリのSQLビューに貼り付けて実行されてみて下さい。

TRANSFORM Max(P.金額) AS 金額の最大
SELECT P.名前
FROM [
SELECT T_給付内容.名前, T_給付内容.項目 & "_金額" AS 集計, T_給付内容.金額
FROM T_給付内容
UNION ALL
SELECT T_給付内容.名前,T_給付内容.項目 & "_日付" AS 集計, T_給付内容.日付
FROM T_給付内容
]. AS P
GROUP BY P.名前
PIVOT P.集計
IN ("学期1_A_金額","学期1_A_日付",
  "学期1_B_金額","学期1_B_日付",
  "学期2_金額","学期2_日付",
  "学期3_金額","学期3_日付");


上記の様なテーブル構成ですクエリでの抽出を行い易くなるのですが、
一覧表などを出す際にはいちいちクロス集計クエリにしなければなりませんので
一長一短だと思います。

クエリで色々とデータを抽出したいのでしたら
こういったテーブル構成を考えてみるのも手かもしれませんね。

※ フィールド名の先頭に半角数字があると、たまに誤作動の元になります。
 (不自然な 学期_1 という名前はそのためです。)

 ミオナさんという方のサイトが解り易くまとまっていますので
 ご参考にされてみてください。

 Miona's Square
 フィールド、コントロール、オブジェクトや変数などに付ける「名前」について
 http://ww3.tiki.ne.jp/~kaya/Ac_tips.html#Tips0_001
382 hits

【8071】クエリの式 あおぎん 06/6/27(火) 19:17 質問
【8073】Re:クエリの式 クロ 06/6/28(水) 9:11 回答
【8074】Re:クエリの式 小僧 06/6/28(水) 10:04 発言
【8098】小僧さんへ あおぎん 06/6/30(金) 10:56 質問
【8100】Re:小僧さんへ 小僧 06/6/30(金) 12:06 回答
【8106】小僧さんへ あおぎん 06/6/30(金) 15:41 質問
【8108】クロス集計クエリの横計を出す方法…かな 小僧 06/6/30(金) 15:52 回答
【8111】クロス集計クエリの横計を出す方法…です あおぎん 06/6/30(金) 18:23 質問
【8123】Re:クロス集計クエリの横計を出す方法…で... 小僧 06/7/3(月) 10:29 回答
【8128】Re:クロス集計クエリの横計を出す方法…で... あおぎん 06/7/3(月) 14:28 質問
【8144】Re:クロス集計クエリの横計を出す方法…で... 855 06/7/3(月) 17:14 発言
【8146】Re:クロス集計クエリの横計を出す方法…で... 小僧 06/7/3(月) 17:28 発言
【8149】Re:クロス集計クエリの横計を出す方法…で... あおぎん 06/7/3(月) 18:22 お礼
【8097】Re:クエリの式 あおぎん 06/6/30(金) 10:30 お礼

5150 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078228
(SS)C-BOARD v3.8 is Free