TheBlackPitcher
Neuer Benutzer
- Beiträge
- 2
Hallo Zusammen,
Das ist der Code wie er jetzt zur Zeit läuft.
Ich würde gerne nur einen Tabellen Zugriff haben.
Ich würde gerne das Gewicht, was sich aus Menge*Gewicht ergibt, gruppiert bei der Paketnummer, in dem Beleg, in der entsprechenden Spalte Updaten. Das wird momentan über eine Schleife gelöst.
Das würde ich aber gerne in einem einzigen Update befehlt haben.
Code:
--Setze Schleifenstartwert
DECLARE
@INPAKET nvarchar (80) = '1'
--Mach ein Paket
DECLARE
@Paket nvarchar (20) = ('_PAK' +@INPAKET )
-- Ermittle und Update das Bruttogewicht der einzelnen Pakete
WHILE (CAST(@INPAKET AS INT)) <= (CAST(@ANZAHLPAKETE AS INT))
BEGIN
EXEC (
'UPDATE BELEG
SET ' + @Paket + 'GEWNETTO =
(SELECT SUM(Menge*Gewicht)
FROM BELEGP
WHERE Belegtyp = ''' + :Belegtyp + '''
AND Belegnummer = ''' + :Belegnummer + '''
AND Artikelnummer <> ''VERPACKUNG''
AND _INPAKETNR = ' + @INPAKET + ')
WHERE Belegtyp = ''' + :Belegtyp + '''
AND Belegnummer = ''' + :Belegnummer + ''''
)
-- Ermittle das Gesamtbruttogewicht des Belegs
DECLARE
@GESAMTBRUTTO FLOAT = 0
DECLARE
@SQLString NVARCHAR (500),
@ParmDefinition NVARCHAR (500),
@GEWNETTO VARCHAR (30),
SET @SQLString = N'SELECT @GEWNETTOOUT = iif(
((ISNULL(' + @Paket + 'GEWBRUTTO,(ISNULL(' + @Paket + 'GEWNETTO,0))))) = 0,
(ISNULL(' + @Paket + 'GEWNETTO,0)),
(ISNULL(' + @Paket + 'GEWBRUTTO,(ISNULL(' + @Paket + 'GEWNETTO,0))))
)
FROM BELEG WHERE Belegtyp = ''' + :Belegtyp + ''' AND Belegnummer = ''' + :Belegnummer + ''''
SET @ParmDefinition = N'@GEWNETTOOUT varchar(30) OUTPUT' EXECUTE sp_executesql @SQLString,
@ParmDefinition,
@GEWNETTOOUT =@GEWNETTO OUTPUT --Ende
SET @GESAMTBRUTTO = @GESAMTBRUTTO + @GEWNETTO
SET @INPAKET = @INPAKET + 1
SET @Paket = ('_PAK' +@INPAKET)
END
Ich würde gerne nur einen Tabellen Zugriff haben.
Ich würde gerne das Gewicht, was sich aus Menge*Gewicht ergibt, gruppiert bei der Paketnummer, in dem Beleg, in der entsprechenden Spalte Updaten. Das wird momentan über eine Schleife gelöst.
Das würde ich aber gerne in einem einzigen Update befehlt haben.