如何在给定的开始月和结束月之间生成月份的变量

How to generate a variable of months between given start and end month

提问人:CraigA 提问时间:6/14/2023 更新时间:6/14/2023 访问量:19

问:

我需要根据给定的开始月和结束月,以基于文本的格式将月份列表生成到变量中,以用作 WHERE stement 的 IN 子句。

月份格式为 2023M1 至 2023M12、2024M1 至 2023M12 等,开始/结束月份可以跨越年份,但永远不会超过提前 1 年。

例如,Start = 2023M7 将始终具有 End = 2024M7 或更小。

我已经有名为 @ValidTimes 的变量来保存输出,用作 WHERE TIME IN @ValidTimes

例如,如果 StartMonth = 2023M9 且 EndMonth = 2024M3, 我需要@ValidTimes ('2023M9','2023M10','2023M11','2023M12','2024M1','2024M2')

开始和结束月份可以是任何内容,并且任何地方的表格中都没有月份列表,因此我需要即时生成它们。

谢谢

SQL 变量

评论

0赞 SchmitzIT 6/14/2023
“开始和结束的月份可以是任何东西,而且任何地方的表格中都没有月份列表,所以我需要即时生成它们。” - 有什么事情阻止您创建自己的桌子吗?这听起来像是类似日期或月份维度的表的明显候选者。这样,您可以轻松地联接到表中并从中检索值,而不是一直执行代码来计算它们。
0赞 CraigA 6/14/2023
嗨,施密茨。不,我无法向此数据库添加表,但如果我可以生成变量,则可以围绕它编写动态 SQL。谢谢

答: 暂无答案