Hello,

at the moment I get all material of a product with a recoursion, but in some
case, I get it manyfold and not grouped. (it gets all Material of the
material in each level)

How can I create a CTE (grouped)?

create or alter procedure P_GETMATERIALTEST (
    TEILENR varchar(16),
    ANZAHLT double precision,
    I integer,
    VTEILENR varchar(16),
    VBSNR integer)
returns (
    BSNR integer,
    MATERIALNR varchar(16),
    ANZAHLM double precision,
    K integer,
    TTEILENR varchar(16),
    TBSNR integer)
AS
/**/BEGIN
 materialnr = teilenr;TTEILENR=vteilenr;TBSNR = VBSNR;
anzahlm = anzahlt; k=i+1; suspend;
for select bsnr, matteilenr, anzahl from tmaterial a
left join tteile b on(a.matteilenr = b.teilenr)
where a.teilenr = :teilenr order by a.bsnr
into :bsnr, :materialnr, :anzahlm do
begin anzahlm = anzahlm * anzahlt;vteilenr = teilenr;VBSNR = BSNR;
if (k < 800) then
for select materialnr, anzahlm, k,tteilenr,tbsnr from
P_GETMATERIALTEST(:materialnr, :anzahlm, :k, :vteilenr, :vbsnr)
into :materialnr, :anzahlm, :k,:TTEILENR,:TBSNR do suspend;
else
insert into terrorlog(tabelleproz, zeitstempel, wert, fehler) values
('P_GETMATERIAL3', 'now', :k, :teilenr || ' Wert Zhlervariable zu hoch!');
end

END

Reply via email to