我有這個查詢
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
謝謝您的幫助。
uj5u.com熱心網友回復:
如果我沒有弄錯你的目的,你必須使用游標來實作你的目標。
您可以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;
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/349684.html
標籤:sql 查询语句 for循环 sql-server-2008 while 循环
