如何解决如何循环 SQL 查询、使用查询中的变量并写入 Microsoft Access 中的表
我有我在 SSMS 中运行的 sql 代码,它利用一个查询和两个日期变量来检查表中的月度变化。查询的第一部分使用 @month1 作为 WHERE 语句中的日期变量,查询的第二部分使用 @month2。
声明 @month1 INT = 0 @month2 INT = 1
每次在我的 WHILE 循环中运行查询时,使用 SET 命令将变量增加 1: SET @month1 = @month1 + 1 SET @month2 = @month2 + 1
因此,本质上,该查询会检查 1 月到 2 月的数据。循环发生并且查询检查二月数据到三月数据……依此类推,直到达到预定义的计数器变量值并退出循环。在循环中,我将记录附加到临时表中。
代码在 SSMS 中完美运行,但是,我想在 Microsoft Access 中使用它,以便其他非 SSMS 用户可以执行。到目前为止,我还没有找到任何例子。是否需要一个函数,或者 Access 可以使用我保存的 sql 脚本吗?任何帮助或指导将不胜感激!
更新:这里是循环代码示例,仅供参考。
DECLARE
@month1 INT = 0,@month2 INT = 1,@effdate DATETIME = '01/15/2021'
`` # of Loop iterations
WHILE @month1 <= 8
BEGIN
`` Find moves from a specific plan type to another plan type
INSERT INTO #PlanChanges
([blah],[blah],[Change_Type],[Change_Period],[MonthNum])
Select [blah],CONVERT(NVARCHAR(20),'LOSS OF PLAN'),DATENAME(MONTH,Plan2.EFF_DT) + ' ' + DATENAME(YEAR,Plan2.EFF_DT),DATEPART(Month,Plan2.EFF_DT)
From (Select *
From MONTHLY_MEMBERSHIP TABLE
Where PLAN_ID = '714'
AND EFF_DT = CONVERT(DATETIME,CONVERT(VARCHAR,DATEPART(MONTH,DATEADD(MONTH,@month1,@effdate)),101) + '/15/' +
CONVERT(VARCHAR,DATEPART(YEAR,101) )) AS Plan1
Inner Join (Select *
From MONTHLY_MEMBERSHIP TABLE
Where (PLAN_ID >='700' AND EFF_DT = CONVERT(DATETIME,@month2,101) + '/15/' + CONVERT(VARCHAR,101) ))
AND PLAN_ID <> '714') AS Plan2
ON Plan1.MEM_ID = Plan2.MEM_ID
`` change the loop conditions
SET @month1 = @month1 + 1
SET @month2 = @month2 + 1
END
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。