回答編集履歴

4

SQLの間違いを修正

2018/12/04 05:21

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -81,7 +81,7 @@
81
81
  SELECT
82
82
  社員名簿.ID,
83
83
  社員名簿.氏名,
84
- 社員名簿.町名
84
+ 社員名簿.町名,
85
85
  Sum(稼働記録.S1+稼働記録.S2+稼働記録.S3+稼働記録.S4) AS 個人別合計
86
86
  FROM
87
87
  社員名簿 INNER JOIN 稼働記録
@@ -95,15 +95,15 @@
95
95
  Q_合計
96
96
  ```SQL
97
97
  SELECT
98
- 社員名簿.氏名,
98
+ 氏名,
99
- 社員名簿.町名,
99
+ 町名,
100
100
  町別合計,
101
101
  個人別合計
102
102
  FROM
103
103
  Q_町別合計 INNER JOIN Q_個人別合計
104
104
  ON Q_町別合計.町名 = Q_個人別合計.町名
105
105
  GROUP BY
106
- 社員名簿.ID;
106
+ Q_個人別合計.ID;
107
107
  ```
108
108
 
109
109
  このクエリをソースとするレポートを作成します

3

回答の追記

2018/12/04 05:21

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -58,8 +58,77 @@
58
58
  町でグループ化して、
59
59
  並び順は、町合計で昇順、社員合計で昇順
60
60
 
61
+ 回答
61
62
  ---
62
- 上記の内容で推測しましたがあってま
63
+ 上記の内容で回答します。
63
- あっていないなら、上記のようなフォーマットで分かりやすく質問内容を整理して修正してください。
64
64
 
65
+ 「稼働記録」と「社員名簿」から下記の2つの集計クエリを作成します。
66
+
67
+ Q_町別合計
68
+ ```SQL
69
+ SELECT
70
+ 社員名簿.町名,
71
+ Sum(稼働記録.S1+稼働記録.S2+稼働記録.S3+稼働記録.S4) AS 町別合計
72
+ FROM
73
+ 社員名簿 INNER JOIN 稼働記録
74
+ ON 社員名簿.ID = 稼働記録.ID
75
+ GROUP BY
76
+ 社員名簿.町名;
77
+ ```
78
+
79
+ Q_個人別合計
80
+ ```SQL
81
+ SELECT
82
+ 社員名簿.ID,
83
+ 社員名簿.氏名,
84
+ 社員名簿.町名
85
+ Sum(稼働記録.S1+稼働記録.S2+稼働記録.S3+稼働記録.S4) AS 個人別合計
86
+ FROM
87
+ 社員名簿 INNER JOIN 稼働記録
88
+ ON 社員名簿.ID = 稼働記録.ID
89
+ GROUP BY
90
+ 社員名簿.ID;
91
+ ```
92
+
93
+ この2つのクエリからさらにクエリを作成します。
94
+
95
+ Q_合計
96
+ ```SQL
97
+ SELECT
98
+ 社員名簿.氏名,
99
+ 社員名簿.町名,
100
+ 町別合計,
101
+ 個人別合計
102
+ FROM
103
+ Q_町別合計 INNER JOIN Q_個人別合計
104
+ ON Q_町別合計.町名 = Q_個人別合計.町名
105
+ GROUP BY
106
+ 社員名簿.ID;
107
+ ```
108
+
109
+ このクエリをソースとするレポートを作成します
110
+
111
+ 「グループ化と並べ替え」で下記のように設定します。
112
+
113
+ 並べ替え: 町別合計 昇順 ヘッダーセクションなし
114
+ ・グループ化: 町名 昇順 ヘッダーセクション付き
115
+ ・・並べ替え: 個人別合計 昇順 ヘッダーセクションなし
116
+
117
+ 町名グループのグループヘッダーに、町名と町別合計をテキストボックスとして配置します。
118
+ さらにテキストボックスを配置して、プロパティを下記のように設定します。
119
+
120
+ コントロールソース =1
121
+ 集計実行 全体
122
+
123
+ これで、町の連番(順位)が表示されます。(ただし、同じ合計値の場合も連番になります。)
124
+
125
+ 詳細セクションに、社員名と社員合計をテキストボックスとして配置します。
126
+ さらにテキストボックスを配置して、プロパティを下記のように設定します。
127
+
128
+ コントロールソース =1
129
+ 集計実行 グループ全体
130
+
131
+ これで町内の社員の連番(順位)が表示されます。(ただし、同じ合計値の場合も連番になります。)
132
+
133
+ 以上です。
65
- あっているならそれ沿って回答をしますので、コメントで返事ください。
134
+ 同じ合計値の場合同じ順位にしたい場合はVBAが必要になりますので、その場合はコメントください。

2

表の間違いを修正

2018/12/03 23:45

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -32,14 +32,14 @@
32
32
  |・|・|・|
33
33
 
34
34
  稼働記録
35
- |gameID|S1|S2|S3|S4|
35
+ |gameID|ID|S1|S2|S3|S4|
36
- |:--|:--:|--:|--:|--:|
36
+ |:--|:--:|--:|--:|--:|--:|
37
37
  |1|1|5|5|5|5|
38
38
  |2|2|5|5|10|10|
39
39
  |3|3|10|10|10|10|
40
40
  |4|4|10|10|10|20|
41
41
  |5|5|2|2|3|3|
42
- |・|・|・|
42
+ |・|・|・|・|・・||
43
43
 
44
44
  上記から最終的にレポートに下記のようなレイアウトで出力したい。
45
45
 

1

書式の改善

2018/12/03 23:00

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -3,6 +3,7 @@
3
3
 
4
4
  以下に質問内容を推理して整理してみました。
5
5
 
6
+ ---
6
7
  下記のようなテーブルがあります。
7
8
 
8
9
  「社員名簿」テーブルのフィールド
@@ -57,6 +58,8 @@
57
58
  町でグループ化して、
58
59
  並び順は、町合計で昇順、社員合計で昇順
59
60
 
61
+ ---
62
+ 上記の内容で推測しましたがあってますか。
63
+ あっていないなら、上記のようなフォーマットで分かりやすく質問内容を整理して修正してください。
60
64
 
61
- 上記の内容で推測しましたがあってますか。
62
- あっていないなら、上記ようなフォーマットで分かりやす質問内容を整理して修正してください。
65
+ あっていなら、それに沿って回答をしますで、コメントで返事ください。