Armin
16-10-07, 11:49
Hallo alle,
es gibt Problem mit einem Subselect.
Aufgabenstellung ist folgende:
Tabelle-1: Auftragspositionen mit den Feldern Auftragsmenge und bereits gelieferte Menge.
Tabelle-2: für die Auftragsposition gefertigte Teile.
Frage ist was noch zu produzieren ist.
Auftragsmenge - Liefermenge - Fertigung
In Tabelle-2 können Sätze von Null bis n vorhanden sein.
Ist nun kein Satz vorhanden bringt der Subselect einen Fehler und damit Abbruch. Rechnen sollte er aber
Auftragsmenge - Liefermenge - NULL
ExecSQL
declare AUFGEScursor cursorfor
select BDESS, BFB,
sum( BBEAB - BFAME
-(selectsum(casewhen STSTAT=1 then STAGME else STNEME end)
from FESTCKS1
where STBELE=AUFGES.BBELE and STPOSI=AUFGES.BPOSI
and STSTAT < 5))
from AUFGES
where BTEIL <> 'E'and (BSCHK, BKETG) in
(select KT3SHK, KT3REZ from KETTGA3 where KT3GAC=:Garnstring)
or BTEIL <> 'E'and (BDESS, BFB) in
(select SGDESS, SGFB from MASCHUS1 where SGGARN=:Garnnummer)
groupby BDESS, BFB
orderby BDESS, BFB ;
ExecSQL
open AUFGEScursor ;
Resteinplanung = *Zero ;
Dou sqlAUFGES <> *Zero ;
ExecSQL
fetchnextfrom AUFGEScursor into :BDESS, :BFB, :BBEAB ;
Die Whereklausel behandelt die Suche nach einer bestimmten Materialkomponente.
Danke für eure Hilfe.
es gibt Problem mit einem Subselect.
Aufgabenstellung ist folgende:
Tabelle-1: Auftragspositionen mit den Feldern Auftragsmenge und bereits gelieferte Menge.
Tabelle-2: für die Auftragsposition gefertigte Teile.
Frage ist was noch zu produzieren ist.
Auftragsmenge - Liefermenge - Fertigung
In Tabelle-2 können Sätze von Null bis n vorhanden sein.
Ist nun kein Satz vorhanden bringt der Subselect einen Fehler und damit Abbruch. Rechnen sollte er aber
Auftragsmenge - Liefermenge - NULL
ExecSQL
declare AUFGEScursor cursorfor
select BDESS, BFB,
sum( BBEAB - BFAME
-(selectsum(casewhen STSTAT=1 then STAGME else STNEME end)
from FESTCKS1
where STBELE=AUFGES.BBELE and STPOSI=AUFGES.BPOSI
and STSTAT < 5))
from AUFGES
where BTEIL <> 'E'and (BSCHK, BKETG) in
(select KT3SHK, KT3REZ from KETTGA3 where KT3GAC=:Garnstring)
or BTEIL <> 'E'and (BDESS, BFB) in
(select SGDESS, SGFB from MASCHUS1 where SGGARN=:Garnnummer)
groupby BDESS, BFB
orderby BDESS, BFB ;
ExecSQL
open AUFGEScursor ;
Resteinplanung = *Zero ;
Dou sqlAUFGES <> *Zero ;
ExecSQL
fetchnextfrom AUFGEScursor into :BDESS, :BFB, :BBEAB ;
Die Whereklausel behandelt die Suche nach einer bestimmten Materialkomponente.
Danke für eure Hilfe.