sql - While 循环函数
问题描述
我有这个查询
select
Suc,
SKU,
TipoMov,
Prov,
sum(Uni) as Uni, sum(Imp_Vta) as Imp_Vta
into #Mov
from dual where (Mes between 22009 and 22105)
and Suc = 11
and TipoMov in (4,5,8)
and Id_Fec_Diaria between '2020-09-28' and '2021-05-17'
group by
Suc, SKU, TipoMov, Prov
到目前为止,我正在尝试在两个日期之间进行一个while循环,但是有一个错误我无法修复或理解。
declare
@FechaMin DATE='2020-09-28',
@FechaMax DATE='2021-05-17';
while (@FechaMin >= @FechaMax)
begin
select
suc,
SKU,
TipoMov,
Prov,
sum(Uni) as Uni,
sum(Imp_Vta) as Imp_Vta
into #Mov
from dual
where (Mes between 22009 and 22105) and
Suc = 11 and
TipoMov in (4,5,8) and
Id_Fec_Diaria >= @FechaMin and Id_Fec_Diaria< @FechaMax
group by
suc,
SKU,
TipoMov,
prov) END
谢谢您的帮助。
解决方案
如果我没有弄错你的目的,你必须使用光标来实现你的目标。
您可以while
用以下代码替换您的块:
DECLARE
@Suc VARCHAR(MAX),
@SKU VARCHAR(MAX),
@TipoMov VARCHAR(MAX),
@Prov VARCHAR(MAX)
DECLARE Mycursor CURSOR
FOR SELECT
Suc ,
SKU ,
TipoMov,
Prov
FROM
dual where (Mes between 22009 and 22105)
and Suc = 11
and TipoMov in (4,5,8)
and Id_Fec_Diaria between '2020-09-28' and '2021-05-17'
OPEN Mycursor;
FETCH NEXT FROM Mycursor INTO
@Suc ,
@SKU ,
@TipoMov ,
@Prov ;
WHILE @@FETCH_STATUS = 0
BEGIN
-----Your Specific Code
FETCH NEXT FROM Mycursor INTO
@Suc ,
@SKU ,
@TipoMov ,
@Prov ;
END;
CLOSE Mycursor;
DEALLOCATE Mycursor;
推荐阅读
- persistence - Android 8.1 真正持久的前台服务通知
- firebase - 使用 SSR apollo react 应用程序进行 Firebase 身份验证
- css - IE11中的计算百分比
- microsoft-dynamics - 创建新的 CRM Dynamics 自定义活动实体时,新活动是否与潜在客户、商机和客户相关联?
- reactjs - React Apollo Link - 承诺解决后如何转发操作?
- c# - 如何解决 DNN 自定义模块不渲染?
- java - 如何模拟 HttpClientBuilder 进行单元测试
- sql - TimeScaleDB 物化行太大
- c# - 使用包含对象中的各个属性转换 JSON 数组中的名称-值对数组
- python - 在大型熊猫数据集的所有行中计算 NaN 列的有效方法?