1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
| create table matchtab
(
ref_a varchar(2),
ech_a int,
ref_b varchar(2),
ech_b int,
)
create table echeancier_b
(
ref_b varchar(2),
ech_b int,
qty_b int,
datelivraison_b date
)
create table echeancier_a
(
ref_a varchar(2),
ech_a int,
qty_a int,
datelivraison_a date
)
insert into echeancier_a (ref_a, ech_a,qty_a,datelivraison_a) values ('a',7,10,GETDATE())
insert into echeancier_b (ref_b, ech_b,qty_b,datelivraison_b) values ('a',3,5,GETDATE()), ('a',8,4,'30/11/2021')
declare ech_curs_a INSENSITIVE CURSOR FOR
select ref_a,ech_a,qty_a,datelivraison_a
from echeancier_a
declare ech_curs_b INSENSITIVE CURSOR FOR
select ref_b,ech_b,qty_b,datelivraison_b
from echeancier_b
open ech_curs_a
open ech_curs_b
Declare @ref varchar(2), @ech int, @qty int, @datelivraison date
Declare @refar varchar(2), @echar int, @qtyar int, @datelivraisonar date
Declare @cpta int, @cptb int, @i int, @j int, @EOF int
set @cpta = (select count(*) from echeancier_a)
set @cptb = (select count(*) from echeancier_b)
--print concat('comteur a', @cpta)
--print concat('comteur b', @cptb)
set @j=0
set @i=0
Fetch ech_curs_a into @ref, @ech, @qty, @datelivraison
while @@FETCH_STATUS = 0
begin
--print concat('@i->',@i)
--print concat('Boucle echeancier_a->', @ref,'/', @ech,'/', @qty,'/', @datelivraison)
Fetch ech_curs_a into @ref, @ech, @qty, @datelivraison
while @@FETCH_STATUS = 0
begin
--print concat('@j->',@j)
Fetch ech_curs_b into @refar, @echar, @qtyar, @datelivraisonar
insert into matchtab (ref_a, ech_a,ref_b, ech_b) values (@ref,@ech,@refar, @echar)
--print concat('Boucle echeancier_b->', @refar,'/', @echar,'/', @qtyar,'/', @datelivraisonar)
set @j = @j + 1
FETCH NEXT FROM ech_curs_b
end
set @i = @i + 1
FETCH NEXT FROM ech_curs_a
end
close ech_curs_a
close ech_curs_b
deallocate ech_curs_a
deallocate ech_curs_b |