alschi
Goto Top

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

Content-Key: 103047

Url: https://administrator.de/contentid/103047

Printed on: April 20, 2024 at 04:04 o'clock

Member: 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?
Member: 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
Member: alschi
alschi Dec 01, 2008 at 16:29:24 (UTC)
Goto Top
Hi,

hat sich erledigt habe den Fehler gefunden.

MfG
Member: 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.
Member: 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