Access VBA質問箱 IV

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

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


4585 / 9994 ←次へ | 前へ→

【8654】Re:グループ化におけるデータの抜き出しと...
回答  小僧  - 06/10/6(金) 11:00 -

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

今回の件とは直接関係はないのですが2,3点気づいた事を…。

> 日付    時刻    担当    商品
> 2006/09/15    2:00:00    山田    テレビ

主キーは設定していますか?
ご提示の様なテーブル構成ですと、

同日、同時刻、同担当という条件でテレビが2台、という事はありえませんか?

もし有り得た場合、「そのうち一つを取り消し処理する」などという場合
目安となるフィールドが無いので、処理が複雑になります。

Uniqueな(絶対に重複しない)フィールドを一つ追加した方が良いと思われます。

> 日付    時刻
> 2006/09/15    2:00:00 

Format関数などで確認すると

2006/09/15 という日付型の値は 2006/09/15 00:00:00
2:00:00  という日付型の値は 1899/12/30 02:00:00

という事になります。

わざわざフィールドを分けずに

日時
2006/09/15 2:00:00

という管理をし
必要に応じて日付部分、時刻部分を取り出す事も可能です。


> 商品
> テレビ
> ラジオ

マスタを作って正規化すると
データベースとしてより使いやすいものになるかと思われます。

T_商品マスタ
商品ID    商品名
1    テレビ
2    ラジオ
3    カメラ
4    ビデオ
5    CD
6    DVD

T_担当者マスタ
担当者ID    担当者名
1    山田
2    佐藤
3    佐々木
4    鈴木

T_売上履歴
売上ID    日時      担当者ID  商品ID
1    2006/09/15 2:00:00     1    1
2    2006/09/15 3:00:00     1    2
3    2006/09/15 19:00:00     1    3
4    2006/09/20 8:00:00     2    4
5    2006/09/20 20:00:00     2    5
6    2006/10/04 9:00:00     3    1
7    2006/10/04 11:00:00     3    1
8    2006/10/04 22:00:00     3    6
9    2006/10/05 16:00:00     4    2
10    2006/09/15 17:00:00    1    6

を用意します。

Q_売上情報:
SELECT T_売上履歴.売上ID,
    Format([日時],"yyyy/mm/dd") AS 日付,
    Format([日時],"hh:nn:ss") AS 時刻,
    T_担当者マスタ.担当者名,
    T_商品マスタ.商品名
FROM (T_売上履歴
  INNER JOIN T_商品マスタ
    ON T_売上履歴.商品ID = T_商品マスタ.商品ID)
  INNER JOIN T_担当者マスタ
    ON T_売上履歴.担当者ID = T_担当者マスタ.担当者ID;

Q_売上情報クロス:
TRANSFORM First(T_商品マスタ.商品名) AS 商品名の先頭
SELECT Format([日時],"yyyy/mm/dd") AS 日付,
    T_担当者マスタ.担当者名
FROM (T_売上履歴
  INNER JOIN T_商品マスタ
    ON T_売上履歴.商品ID = T_商品マスタ.商品ID)
  INNER JOIN T_担当者マスタ
    ON T_売上履歴.担当者ID = T_担当者マスタ.担当者ID
GROUP BY Format([日時],"yyyy/mm/dd"),
     T_担当者マスタ.担当者名
PIVOT "商品_" & DCount("*","T_売上履歴",
   "担当者ID=" & T_売上履歴!担当者ID & " AND 売上ID <= " & [売上ID]);


クエリの SQLビューに上記を記述し、結果を確認されてみて下さい。
382 hits

【8652】グループ化におけるデータの抜き出しと再配置 miyake 06/10/5(木) 22:11 質問
【8653】Re:グループ化におけるデータの抜き出しと再... クロ 06/10/6(金) 8:16 発言
【8654】Re:グループ化におけるデータの抜き出しと... 小僧 06/10/6(金) 11:00 回答
【8661】Re:グループ化におけるデータの抜き出しと... miyake 06/10/9(月) 9:50 質問
【8663】Re:グループ化におけるデータの抜き出しと... 小僧 06/10/10(火) 10:57 回答
【8666】Re:グループ化におけるデータの抜き出しと... miyake 06/10/12(木) 0:06 お礼
【8659】参考になりました。 miyake 06/10/7(土) 6:47 お礼

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