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-ID: 103047

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

Ausgedruckt am: 26.11.2024 um 00:11 Uhr

Netzheimer
Netzheimer 01.12.2008 um 15:40:48 Uhr
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 01.12.2008 um 15:47:39 Uhr
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 01.12.2008 um 17:29:24 Uhr
Goto Top
Hi,

hat sich erledigt habe den Fehler gefunden.

MfG
Netzheimer
Netzheimer 02.12.2008 um 08:19:14 Uhr
Goto Top
Poste doch bitte, was es war.

Nicht vergessen: Den Eintrag als erledigt markieren.
alschi
alschi 02.12.2008 um 14:45:55 Uhr
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