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

質問編集履歴

1

追記

2021/07/10 12:10

投稿

kyousuke8957
kyousuke8957

スコア7

title CHANGED
File without changes
body CHANGED
@@ -14,4 +14,29 @@
14
14
  現在は、クロス集計クエリ1とクロス集計クエリ2をVBAで読み込みループで一致する項目を探して新規テーブルを作成し書き込みで処理。
15
15
  クエリやSQLで解決を行いたい。
16
16
 
17
- よろしくお願いいたします。
17
+ よろしくお願いいたします。
18
+
19
+ 以下追記 20210710
20
+ クエリで実績テーブルから必要情報のみを抜き出すクエリを作成しています。
21
+ その際に、月曜開始で何週目かを判定させています。
22
+ 下記SQL
23
+ ---------------------
24
+ SELECT T_実績.売立日, T_実績.売先_CD, T_得意先M.得意先名称, T_実績.仕入先_CD, T_仕入先M.仕入先名称, T_実績.品目_CD, T_品目M.品名, T_実績.登録品目名, T_実績.数量, T_実績.売り_単価, T_実績.仕入_単価, DateDiff("ww",DateSerial(Year([売立日]),Month([売立日]),2),[売立日])+1 AS 週目, T_実績.規格
25
+ FROM T_品目M INNER JOIN (T_仕入先M INNER JOIN (T_得意先M INNER JOIN T_実績 ON T_得意先M.得意先コード = T_実績.売先_CD) ON T_仕入先M.仕入先コード = T_実績.仕入先_CD) ON T_品目M.[コード] = T_実績.品目_CD
26
+ WHERE (((T_実績.売立_年)=2020) AND ((T_実績.売立_月)=6));
27
+ ---------------------
28
+
29
+ 条件を2020で[Q_昨年]と2021で[Q_当年]二つのクエリを作成しています。
30
+
31
+ [Q_昨年]と[Q_当年]をそれぞれクロス集計クエリで週目を計算しています。
32
+ 下記SQL
33
+ ---------------------
34
+ TRANSFORM Sum(Q_当年.数量) AS 数量の合計
35
+ SELECT Q_当年.売先_CD, Q_当年.得意先名称, Q_当年.仕入先_CD, Q_当年.仕入先名称, Q_当年.品目_CD, Q_当年.品名, Q_当年.規格
36
+ FROM Q_当年
37
+ GROUP BY Q_当年.売先_CD, Q_当年.得意先名称, Q_当年.仕入先_CD, Q_当年.仕入先名称, Q_当年.品目_CD, Q_当年.品名, Q_当年.規格
38
+ PIVOT Q_当年.週目;
39
+ ---------------------
40
+
41
+ [Q_昨年_クロス]と[Q_当年_クロス]
42
+ を結合して、昨年と当年を横に並べたいです。