回答編集履歴

2

「回答へのコメント」に対して追記

2023/08/20 04:25

投稿

neko_the_shadow
neko_the_shadow

スコア2374

test CHANGED
@@ -33,3 +33,20 @@
33
33
  WHERE SHIWAKE_YYMM <= DATE_FORMAT(CURDATE(), '%Y%m')
34
34
  AND SHIWAKE_KI = CASE WHEN MONTH(CURDATE())<=3 THEN YEAR(CURDATE())-1948 ELSE YEAR(CURDATE())-1947 END;
35
35
  ```
36
+ ---
37
+ **2023-08-20 13:20追記**
38
+
39
+ > いくつか方法あると記載頂きましたが、SELECT句の中で実現可能な方法ありますか?
40
+ > SELECT ~ as 今期売上合計金額, ~ as 前期売上合計金額, 今期売上合計実績/前期売上合計実績 as 前期比 from URIAGE_DATA
41
+ > としたいです。
42
+
43
+ 無理やりこの形式に当てはめるのであれば、以下のようなSQLになるかと思います。
44
+
45
+ ```SQL
46
+ SELECT
47
+ SUM(CASE WHEN SHIWAKE_YYMM <= DATE_FORMAT(CURDATE(), '%Y%m') AND SHIWAKE_KI = (YEAR(CURDATE()) - CASE WHEN MONTH(CURDATE()) <= 3 THEN 1948 ELSE 1947 END) THEN URIAGE_GAK ELSE 0 END) AS 今期売上合計金額,
48
+ SUM(CASE WHEN SHIWAKE_YYMM <= DATE_FORMAT(CURDATE(), '%Y%m') AND SHIWAKE_KI = (YEAR(CURDATE()) - CASE WHEN MONTH(CURDATE()) <= 3 THEN 1949 ELSE 1948 END) THEN URIAGE_GAK ELSE 0 END) AS 前期売上合計金額,
49
+ SUM(CASE WHEN SHIWAKE_YYMM <= DATE_FORMAT(CURDATE(), '%Y%m') AND SHIWAKE_KI = (YEAR(CURDATE()) - CASE WHEN MONTH(CURDATE()) <= 3 THEN 1948 ELSE 1947 END) THEN URIAGE_GAK ELSE 0 END)
50
+ / SUM(CASE WHEN SHIWAKE_YYMM <= DATE_FORMAT(CURDATE(), '%Y%m') AND SHIWAKE_KI = (YEAR(CURDATE()) - CASE WHEN MONTH(CURDATE()) <= 3 THEN 1949 ELSE 1948 END) THEN URIAGE_GAK ELSE 0 END) AS 前期比
51
+ FROM URIAGE_DATA;
52
+ ```

1

「回答へのコメント」に対して内容を追記

2023/08/19 08:50

投稿

neko_the_shadow
neko_the_shadow

スコア2374

test CHANGED
@@ -21,3 +21,15 @@
21
21
  |76|222|189|
22
22
  |77|366|144|
23
23
  |78|75|-291|
24
+
25
+ ---
26
+ **2023-08-19 17:20追記**
27
+
28
+ 「回答へのコメント」にあるイメージを実現する方法はいくつかあると思いますが、たとえば以下のようなSQLはどうでしょうか。
29
+
30
+ ```SQL
31
+ SELECT SUM(URIAGE_GAK)
32
+ FROM URIAGE_DATA
33
+ WHERE SHIWAKE_YYMM <= DATE_FORMAT(CURDATE(), '%Y%m')
34
+ AND SHIWAKE_KI = CASE WHEN MONTH(CURDATE())<=3 THEN YEAR(CURDATE())-1948 ELSE YEAR(CURDATE())-1947 END;
35
+ ```