alschi

Update mit EXEC?

Hi,

ich benötige mal bitte Hilfe.
Ich muss ein paar Zellen in einer Tabelle mit Hilfe einer Skalarwertfunktion aktualisieren und komm da nicht weiter.

DECLARE @kalkpr decimal(12,2)
DECLARE @nr nchar(18)
DECLARE @date datetime
DECLARE @zaehler int
DECLARE contact_cursor CURSOR FOR
select Zaehler,Artikelnummer,Datum from X_Belegp
WHERE Zaehler <> '0'
ORDER BY Zaehler


OPEN contact_cursor


FETCH NEXT FROM contact_cursor INTO @zaehler, @nr, @date


WHILE @@FETCH_STATUS = 0
BEGIN


EXEC @kalkpr = dbo.SL_fnKalkpreis @nr,@Date,'EUR','0'
select @kalkpr, @nr
/*hier werden 3 Nummern(UC42=407.03;CP20=17.50;FA10=0.55) angezeigt mit den dazugehörigen Preisen*/

update X_Belegp
Set Kalkulationspreis = @kalkpr
/*hier werden 3 Nummer (UC42=0.55;CP20=0.55;FA10=0.55) angezeigt aber ALLE mit dem Preis der 3ten Position*/


FETCH NEXT FROM contact_cursor INTO @zaehler, @nr, @date

END

CLOSE contact_cursor
DEALLOCATE contact_cursor

GO


Wäre schön wenn jemand Helfen könnte.
MfG
Share on Facebook
Share on X (Twitter)
Share on Reddit
Share on Linkedin

Content-ID: 103047

Url: https://administrator.de/forum/update-mit-exec-103047.html

Printed on: May 13, 2025 at 05:05 o'clock

Netzheimer
Netzheimer Dec 01, 2008 at 14:40:48 (UTC)
Goto Top
Was ist das Problem? Fehlerbeschreibung oder ähnliches wäre hilfreich.

Wie sieht es mit der Funktion sbo.SLfnKalkpreis aus, sind alle Übergabewerte korrekt?
alschi
alschi Dec 01, 2008 at 14:47:39 (UTC)
Goto Top
in den Zeilen stehen die Kommentare was passiert aber ich beschreibe es natürlich auch.

Nach dem EXEC das select der Variablen @kalkpr, und @nr werden 3 Nummern
UC42=407.03
CP20=17.50
FA10=0.55
angezeigt mit den dazugehörigen Preisen

wenn ich dagegen nach dem Update und set Befehl ein Select auf die zu updatende Tabelle setze werden 3 Nummer
UC42=0.55
CP20=0.55
FA10=0.55
angezeigt aber ALLE mit dem Preis der 3ten Position

MfG
alschi
alschi Dec 01, 2008 at 16:29:24 (UTC)
Goto Top
Hi,

hat sich erledigt habe den Fehler gefunden.

MfG
Netzheimer
Netzheimer Dec 02, 2008 at 07:19:14 (UTC)
Goto Top
Poste doch bitte, was es war.

Nicht vergessen: Den Eintrag als erledigt markieren.
alschi
alschi Dec 02, 2008 at 13:45:55 (UTC)
Goto Top
Ich hatte einfach keine where Begrenzung in den Abschnitt update gesetz.


DECLARE @kalkpr decimal(12,2)
DECLARE @nr nchar(18)
DECLARE @date datetime
DECLARE @zaehler int
DECLARE contact_cursor CURSOR FOR
select Zaehler,Artikelnummer,Datum from X_Belegp
WHERE Zaehler <> '0'
ORDER BY Zaehler


OPEN contact_cursor


FETCH NEXT FROM contact_cursor INTO @zaehler, @nr, @date


WHILE @@FETCH_STATUS = 0
BEGIN


EXEC @kalkpr = dbo.SL_fnKalkpreis @nr,@Date,'EUR','0'
select @kalkpr, @nr


update X_Belegp
Set Kalkulationspreis = @kalkpr
where Artikelnummer = @nr


FETCH NEXT FROM contact_cursor INTO @zaehler, @nr, @date

END

CLOSE contact_cursor
DEALLOCATE contact_cursor

GO