teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

進行状況の追加と、作成順序の追加

2021/07/19 05:56

投稿

kyousuke8957
kyousuke8957

スコア7

title CHANGED
File without changes
body CHANGED
@@ -30,22 +30,22 @@
30
30
  数量のSQLを
31
31
  ```ここに言語を入力
32
32
  TRANSFORM Sum([T_実績.数量]) AS 数量の合計
33
- SELECT T_実績.売先_CD, T_得意先M.得意先名称, T_実績.仕入先_CD, T_仕入先M.仕入先名称, T_実績.品目_CD, T_品目M.品名, T_実績.規格
34
- FROM ((T_実績 INNER JOIN T_得意先M ON T_得意先M.得意先コード = T_実績.売先_CD) INNER JOIN T_仕入先M ON T_仕入先M.仕入先コード = T_実績.仕入先_CD) INNER JOIN T_品目M ON T_品目M.[コード] = T_実績.品目_CD
35
- WHERE 売立_年 In (2020,2021) AND 売立_月=6
36
- GROUP BY T_実績.売先_CD, T_得意先M.得意先名称, T_実績.仕入先_CD, T_仕入先M.仕入先名称, T_実績.品目_CD, T_品目M.品名, T_実績.規格
37
- PIVOT IIf(T_実績.売立_年=2021,"当年","昨年") & DateDiff("ww",DateSerial(T_実績.売立_年,T_実績.売立_月,1),[売立日])+1 & "週" in(当年1週,当年2週,当年3週,当年4週,当年5週,当年6週,昨年1週,昨年2週,昨年3週,昨年4週,昨年5週,昨年6週);
33
+ SELECT T_実績.売先_CD, T_得意先M.得意先名称, T_実績.仕入先_CD, T_仕入先M.仕入先名称, T_実績.品目_CD, T_品目M.品名, T_実績.規格, [売先_CD] & [仕入先_CD] & [品目_CD] & [規格] AS 判定コード
34
+ FROM ((T_実績 INNER JOIN T_得意先M ON T_実績.売先_CD = T_得意先M.得意先コード) INNER JOIN T_仕入先M ON T_実績.仕入先_CD = T_仕入先M.仕入先コード) INNER JOIN T_品目M ON T_実績.品目_CD = T_品目M.[コード]
35
+ WHERE (((T_実績.売立_年) In (2020,2021)) AND ((T_実績.売立_月)=6))
36
+ GROUP BY T_実績.売先_CD, T_得意先M.得意先名称, T_実績.仕入先_CD, T_仕入先M.仕入先名称, T_実績.品目_CD, T_品目M.品名, T_実績.規格, [売先_CD] & [仕入先_CD] & [品目_CD] & [規格]
37
+ PIVOT IIf(T_実績.売立_年=2021,"当年","昨年") & DateDiff("ww",DateSerial(T_実績.売立_年,T_実績.売立_月,1),[売立日])+1 & "週(数量)" In ("当年1週(数量)","当年2週(数量)","当年3週(数量)","当年4週(数量)","当年5週(数量)","当年6週(数量)","昨年1週(数量)","昨年2週(数量)","昨年3週(数量)","昨年4週(数量)","昨年5週(数量)","昨年6週(数量)");
38
38
 
39
39
  ```
40
40
 
41
41
  金額のSQLを
42
42
  ```ここに言語を入力
43
43
  TRANSFORM Sum([T_実績.数量]*[T_実績.売り_単価]) AS 金額の合計
44
- SELECT T_実績.売先_CD, T_得意先M.得意先名称, T_実績.仕入先_CD, T_仕入先M.仕入先名称, T_実績.品目_CD, T_品目M.品名, T_実績.規格
44
+ SELECT T_実績.売先_CD, T_得意先M.得意先名称, T_実績.仕入先_CD, T_仕入先M.仕入先名称, T_実績.品目_CD, T_品目M.品名, T_実績.規格, [売先_CD] & [仕入先_CD] & [品目_CD] & [規格] AS 判定コード
45
45
  FROM ((T_実績 INNER JOIN T_得意先M ON T_実績.売先_CD = T_得意先M.得意先コード) INNER JOIN T_仕入先M ON T_実績.仕入先_CD = T_仕入先M.仕入先コード) INNER JOIN T_品目M ON T_実績.品目_CD = T_品目M.[コード]
46
- WHERE (((T_実績.[売立_年]) In (2020,2021)) AND ((T_実績.[売立_月])=6))
47
- GROUP BY T_実績.売先_CD, T_得意先M.得意先名称, T_実績.仕入先_CD, T_仕入先M.仕入先名称, T_実績.品目_CD, T_品目M.品名, T_実績.規格
48
- PIVOT IIf(T_実績.売立_年=2021,"当年","昨年") & DateDiff("ww",DateSerial(T_実績.売立_年,T_実績.売立_月,1),[売立日])+1 & "週" In (当年1週,当年2週,当年3週,当年4週,当年5週,当年6週,昨年1週,昨年2週,昨年3週,昨年4週,昨年5週,昨年6週);
46
+ WHERE (((T_実績.売立_年) In (2020,2021)) AND ((T_実績.売立_月)=6))
47
+ GROUP BY T_実績.売先_CD, T_得意先M.得意先名称, T_実績.仕入先_CD, T_仕入先M.仕入先名称, T_実績.品目_CD, T_品目M.品名, T_実績.規格, [売先_CD] & [仕入先_CD] & [品目_CD] & [規格]
48
+ PIVOT IIf(T_実績.売立_年=2021,"当年","昨年") & DateDiff("ww",DateSerial(T_実績.売立_年,T_実績.売立_月,1),[売立日])+1 & "週(金額)" In ("当年1週(金額)","当年2週(金額)","当年3週(金額)","当年4週(金額)","当年5週(金額)","当年6週(金額)","昨年1週(金額)","昨年2週(金額)","昨年3週(金額)","昨年4週(金額)","昨年5週(金額)","昨年6週(金額)");
49
49
 
50
50
  ```
51
51
 
@@ -66,4 +66,6 @@
66
66
  ```
67
67
  としています。
68
68
 
69
- まず、数量と金額の表示をさせれる用になった後に合計や目標の値を表示させれる用になりたいです。
69
+ まず、数量と金額の表示をさせれる用になった後に合計や目標の値を表示させれる用になりたいです。
70
+
71
+ とりあえず、今は数量と金額のクエリをさらに判定コードを作成して二個を1個にまとめています。

2

進行状況の追加と、作成順序の追加

2021/07/19 05:56

投稿

kyousuke8957
kyousuke8957

スコア7

title CHANGED
File without changes
body CHANGED
@@ -29,40 +29,40 @@
29
29
 
30
30
  数量のSQLを
31
31
  ```ここに言語を入力
32
- TRANSFORM Sum([T_週間予定.数量]) AS 数量の合計
32
+ TRANSFORM Sum([T_実績.数量]) AS 数量の合計
33
- SELECT T_週間予定.売先_CD, T_得意先M.得意先名称, T_週間予定.仕入先_CD, T_仕入先M.仕入先名称, T_週間予定.品目_CD, T_品目M.品名, T_週間予定.規格
33
+ SELECT T_実績.売先_CD, T_得意先M.得意先名称, T_実績.仕入先_CD, T_仕入先M.仕入先名称, T_実績.品目_CD, T_品目M.品名, T_実績.規格
34
- FROM ((T_週間予定 INNER JOIN T_得意先M ON T_得意先M.得意先コード = T_週間予定.売先_CD) INNER JOIN T_仕入先M ON T_仕入先M.仕入先コード = T_週間予定.仕入先_CD) INNER JOIN T_品目M ON T_品目M.[コード] = T_週間予定.品目_CD
34
+ FROM ((T_実績 INNER JOIN T_得意先M ON T_得意先M.得意先コード = T_実績.売先_CD) INNER JOIN T_仕入先M ON T_仕入先M.仕入先コード = T_実績.仕入先_CD) INNER JOIN T_品目M ON T_品目M.[コード] = T_実績.品目_CD
35
35
  WHERE 売立_年 In (2020,2021) AND 売立_月=6
36
- GROUP BY T_週間予定.売先_CD, T_得意先M.得意先名称, T_週間予定.仕入先_CD, T_仕入先M.仕入先名称, T_週間予定.品目_CD, T_品目M.品名, T_週間予定.規格
36
+ GROUP BY T_実績.売先_CD, T_得意先M.得意先名称, T_実績.仕入先_CD, T_仕入先M.仕入先名称, T_実績.品目_CD, T_品目M.品名, T_実績.規格
37
- PIVOT IIf(T_週間予定.売立_年=2021,"当年","昨年") & DateDiff("ww",DateSerial(T_週間予定.売立_年,T_週間予定.売立_月,1),[売立日])+1 & "週" in(当年1週,当年2週,当年3週,当年4週,当年5週,当年6週,昨年1週,昨年2週,昨年3週,昨年4週,昨年5週,昨年6週);
37
+ PIVOT IIf(T_実績.売立_年=2021,"当年","昨年") & DateDiff("ww",DateSerial(T_実績.売立_年,T_実績.売立_月,1),[売立日])+1 & "週" in(当年1週,当年2週,当年3週,当年4週,当年5週,当年6週,昨年1週,昨年2週,昨年3週,昨年4週,昨年5週,昨年6週);
38
38
 
39
39
  ```
40
40
 
41
41
  金額のSQLを
42
42
  ```ここに言語を入力
43
- TRANSFORM Sum([T_週間予定.数量]*[T_週間予定.売り_単価]) AS 金額の合計
43
+ TRANSFORM Sum([T_実績.数量]*[T_実績.売り_単価]) AS 金額の合計
44
- SELECT T_週間予定.売先_CD, T_得意先M.得意先名称, T_週間予定.仕入先_CD, T_仕入先M.仕入先名称, T_週間予定.品目_CD, T_品目M.品名, T_週間予定.規格
44
+ SELECT T_実績.売先_CD, T_得意先M.得意先名称, T_実績.仕入先_CD, T_仕入先M.仕入先名称, T_実績.品目_CD, T_品目M.品名, T_実績.規格
45
- FROM ((T_週間予定 INNER JOIN T_得意先M ON T_週間予定.売先_CD = T_得意先M.得意先コード) INNER JOIN T_仕入先M ON T_週間予定.仕入先_CD = T_仕入先M.仕入先コード) INNER JOIN T_品目M ON T_週間予定.品目_CD = T_品目M.[コード]
45
+ FROM ((T_実績 INNER JOIN T_得意先M ON T_実績.売先_CD = T_得意先M.得意先コード) INNER JOIN T_仕入先M ON T_実績.仕入先_CD = T_仕入先M.仕入先コード) INNER JOIN T_品目M ON T_実績.品目_CD = T_品目M.[コード]
46
- WHERE (((T_週間予定.[売立_年]) In (2020,2021)) AND ((T_週間予定.[売立_月])=6))
46
+ WHERE (((T_実績.[売立_年]) In (2020,2021)) AND ((T_実績.[売立_月])=6))
47
- GROUP BY T_週間予定.売先_CD, T_得意先M.得意先名称, T_週間予定.仕入先_CD, T_仕入先M.仕入先名称, T_週間予定.品目_CD, T_品目M.品名, T_週間予定.規格
47
+ GROUP BY T_実績.売先_CD, T_得意先M.得意先名称, T_実績.仕入先_CD, T_仕入先M.仕入先名称, T_実績.品目_CD, T_品目M.品名, T_実績.規格
48
- PIVOT IIf(T_週間予定.売立_年=2021,"当年","昨年") & DateDiff("ww",DateSerial(T_週間予定.売立_年,T_週間予定.売立_月,1),[売立日])+1 & "週" In (当年1週,当年2週,当年3週,当年4週,当年5週,当年6週,昨年1週,昨年2週,昨年3週,昨年4週,昨年5週,昨年6週);
48
+ PIVOT IIf(T_実績.売立_年=2021,"当年","昨年") & DateDiff("ww",DateSerial(T_実績.売立_年,T_実績.売立_月,1),[売立日])+1 & "週" In (当年1週,当年2週,当年3週,当年4週,当年5週,当年6週,昨年1週,昨年2週,昨年3週,昨年4週,昨年5週,昨年6週);
49
49
 
50
50
  ```
51
51
 
52
52
  としました。
53
53
  次に別々に作成したSQLを一つにするために
54
54
  ```ここに言語を入力
55
- TRANSFORM (Sum([T_週間予定.数量]) AS 数量の合計,Sum([T_週間予定.数量]*[T_週間予定.売り_単価]) AS 金額の合計)
55
+ TRANSFORM (Sum([T_実績.数量]) AS 数量の合計,Sum([T_実績.数量]*[T_実績.売り_単価]) AS 金額の合計)
56
56
  ```
57
57
 
58
58
  ```ここに言語を入力
59
- TRANSFORM IN(Sum([T_週間予定.数量]) AS 数量の合計,Sum([T_週間予定.数量]*[T_週間予定.売り_単価]) AS 金額の合計)
59
+ TRANSFORM IN(Sum([T_実績.数量]) AS 数量の合計,Sum([T_実績.数量]*[T_実績.売り_単価]) AS 金額の合計)
60
60
  ```
61
61
  を試しましたが、エラーとなりました。
62
62
 
63
63
  また、PIVOTは
64
64
  ```ここに言語を入力
65
- PIVOT IIf(T_週間予定.売立_年=2021,"当年","昨年") & DateDiff("ww",DateSerial(T_週間予定.売立_年,T_週間予定.売立_月,1),[売立日])+1 & "週" In (当年1週(数量),当年2週(数量),当年3週(数量),当年4週(数量),当年5週(数量),当年6週(数量),昨年1週(数量),昨年2週(数量),昨年3週(数量),昨年4週(数量),昨年5週(数量),昨年6週(数量),当年1週(金額),当年2週(金額),当年3週(金額),当年4週(金額),当年5週(金額),当年6週(金額),昨年1週(金額),昨年2週(金額),昨年3週(金額),昨年4週(金額),昨年5週(金額),昨年6週(金額));
65
+ PIVOT IIf(T_実績.売立_年=2021,"当年","昨年") & DateDiff("ww",DateSerial(T_実績.売立_年,T_実績.売立_月,1),[売立日])+1 & "週" In (当年1週(数量),当年2週(数量),当年3週(数量),当年4週(数量),当年5週(数量),当年6週(数量),昨年1週(数量),昨年2週(数量),昨年3週(数量),昨年4週(数量),昨年5週(数量),昨年6週(数量),当年1週(金額),当年2週(金額),当年3週(金額),当年4週(金額),当年5週(金額),当年6週(金額),昨年1週(金額),昨年2週(金額),昨年3週(金額),昨年4週(金額),昨年5週(金額),昨年6週(金額));
66
66
  ```
67
67
  としています。
68
68
 

1

進行状況の追加と、作成順序の追加

2021/07/19 05:50

投稿

kyousuke8957
kyousuke8957

スコア7

title CHANGED
File without changes
body CHANGED
@@ -22,4 +22,48 @@
22
22
  当年1週(金額)の計算方法は、当年1週(数量)にT_実績のフィールドに売り_単価としてありますので数量に掛けて計算したいです。
23
23
 
24
24
  またレポートは画像のように、連続して同じCDや名称時は表示させない用にしたいです。
25
- 売先が変わる毎に、最終行に合計を表示させたいです。
25
+ 売先が変わる毎に、最終行に合計を表示させたいです。
26
+
27
+ 2021/7/19追記
28
+ まず、当年の数量と金額の表示をさせようとしました。
29
+
30
+ 数量のSQLを
31
+ ```ここに言語を入力
32
+ TRANSFORM Sum([T_週間予定.数量]) AS 数量の合計
33
+ SELECT T_週間予定.売先_CD, T_得意先M.得意先名称, T_週間予定.仕入先_CD, T_仕入先M.仕入先名称, T_週間予定.品目_CD, T_品目M.品名, T_週間予定.規格
34
+ FROM ((T_週間予定 INNER JOIN T_得意先M ON T_得意先M.得意先コード = T_週間予定.売先_CD) INNER JOIN T_仕入先M ON T_仕入先M.仕入先コード = T_週間予定.仕入先_CD) INNER JOIN T_品目M ON T_品目M.[コード] = T_週間予定.品目_CD
35
+ WHERE 売立_年 In (2020,2021) AND 売立_月=6
36
+ GROUP BY T_週間予定.売先_CD, T_得意先M.得意先名称, T_週間予定.仕入先_CD, T_仕入先M.仕入先名称, T_週間予定.品目_CD, T_品目M.品名, T_週間予定.規格
37
+ PIVOT IIf(T_週間予定.売立_年=2021,"当年","昨年") & DateDiff("ww",DateSerial(T_週間予定.売立_年,T_週間予定.売立_月,1),[売立日])+1 & "週" in(当年1週,当年2週,当年3週,当年4週,当年5週,当年6週,昨年1週,昨年2週,昨年3週,昨年4週,昨年5週,昨年6週);
38
+
39
+ ```
40
+
41
+ 金額のSQLを
42
+ ```ここに言語を入力
43
+ TRANSFORM Sum([T_週間予定.数量]*[T_週間予定.売り_単価]) AS 金額の合計
44
+ SELECT T_週間予定.売先_CD, T_得意先M.得意先名称, T_週間予定.仕入先_CD, T_仕入先M.仕入先名称, T_週間予定.品目_CD, T_品目M.品名, T_週間予定.規格
45
+ FROM ((T_週間予定 INNER JOIN T_得意先M ON T_週間予定.売先_CD = T_得意先M.得意先コード) INNER JOIN T_仕入先M ON T_週間予定.仕入先_CD = T_仕入先M.仕入先コード) INNER JOIN T_品目M ON T_週間予定.品目_CD = T_品目M.[コード]
46
+ WHERE (((T_週間予定.[売立_年]) In (2020,2021)) AND ((T_週間予定.[売立_月])=6))
47
+ GROUP BY T_週間予定.売先_CD, T_得意先M.得意先名称, T_週間予定.仕入先_CD, T_仕入先M.仕入先名称, T_週間予定.品目_CD, T_品目M.品名, T_週間予定.規格
48
+ PIVOT IIf(T_週間予定.売立_年=2021,"当年","昨年") & DateDiff("ww",DateSerial(T_週間予定.売立_年,T_週間予定.売立_月,1),[売立日])+1 & "週" In (当年1週,当年2週,当年3週,当年4週,当年5週,当年6週,昨年1週,昨年2週,昨年3週,昨年4週,昨年5週,昨年6週);
49
+
50
+ ```
51
+
52
+ としました。
53
+ 次に別々に作成したSQLを一つにするために
54
+ ```ここに言語を入力
55
+ TRANSFORM (Sum([T_週間予定.数量]) AS 数量の合計,Sum([T_週間予定.数量]*[T_週間予定.売り_単価]) AS 金額の合計)
56
+ ```
57
+
58
+ ```ここに言語を入力
59
+ TRANSFORM IN(Sum([T_週間予定.数量]) AS 数量の合計,Sum([T_週間予定.数量]*[T_週間予定.売り_単価]) AS 金額の合計)
60
+ ```
61
+ を試しましたが、エラーとなりました。
62
+
63
+ また、PIVOTは
64
+ ```ここに言語を入力
65
+ PIVOT IIf(T_週間予定.売立_年=2021,"当年","昨年") & DateDiff("ww",DateSerial(T_週間予定.売立_年,T_週間予定.売立_月,1),[売立日])+1 & "週" In (当年1週(数量),当年2週(数量),当年3週(数量),当年4週(数量),当年5週(数量),当年6週(数量),昨年1週(数量),昨年2週(数量),昨年3週(数量),昨年4週(数量),昨年5週(数量),昨年6週(数量),当年1週(金額),当年2週(金額),当年3週(金額),当年4週(金額),当年5週(金額),当年6週(金額),昨年1週(金額),昨年2週(金額),昨年3週(金額),昨年4週(金額),昨年5週(金額),昨年6週(金額));
66
+ ```
67
+ としています。
68
+
69
+ まず、数量と金額の表示をさせれる用になった後に合計や目標の値を表示させれる用になりたいです。