MW211 EXIT

devlog
MSSQL/年月が独立している場合の最大年月(分割)
2025年08月23日
年月に分割するとなった場合、無理くりこんな感じが思い浮かぶ。
┌──────────────────────────────────────┐
│SELECT CONVERT([int],                                                       │
│     LEFT( MAX(FORMAT([年], '0000') + '/' + FORMAT([月], '00')), 4)) AS [年],│
│       CONVERT([int],                                                       │
│    RIGHT(MAX(FORMAT([年], '0000') + '/' + FORMAT([月], '00')), 2)) AS [月] │
│    FROM (                                                                  │
│        VALUES (2024, 12),                                                  │
│               (2025,  1),                                                  │
│               (2025,  2)                                                   │
│    ) AS [表]([年], [月]);                                                  │
│--→年「2025」、月「2」                                                     │
└──────────────────────────────────────┘

しかし、ここまでくるとハナから日付型にしてしまった方がシンプルでわかりやすい。
┌──────────────────────────────────────┐
│SELECT YEAR( MAX(DATEFROMPARTS([年], [月], 1))) AS [年],                    │
│       MONTH(MAX(DATEFROMPARTS([年], [月], 1))) AS [月]                     │
│FROM (                                                                      │
│    VALUES (2024, 12),                                                      │
│           (2025,  1),                                                      │
│           (2025,  2)                                                       │
│) AS T([年], [月]);                                                         │
│--→年「2025」、月「2」                                                     │
└──────────────────────────────────────┘
分類:MSSQL