![]() |
Datenbank: firebird • Version: 2.1 • Zugriff über: zeos
SQL-Statement funktioniert nicht
Hallo zusammen
folgendes Statement :
Code:
funktioniert solange in artikelpreise und artikelpreiseaenderung die gleiche Anzahl DS vorhanden sind.
update artikelpreise p1
set p1.bruttopreis = (SELECT bruttoneu as bruttopreis FROM artikelpreiseaenderung p2 WHERE p1.artikelpreis_id = p2.artikelpreis_id ), p1.nettopreis = (SELECT (bruttoneu / (100 + p2.mwstsatz ) *100 ) as nettopreis FROM artikelpreiseaenderung p2 WHERE p1.artikelpreis_id = p2.artikelpreis_id ) Wenn in der Tabelle artikelpreise aber weitere DS stehen werden diese logischerweise auf 0 gesetzt. Das Statement wie folgt zu erweitern funktioniert auch nicht:
Code:
hier kennt er p2 der letzten where-Klausel nicht:-(
update artikelpreise p1
set p1.bruttopreis = (SELECT bruttoneu as bruttopreis FROM artikelpreiseaenderung p2 WHERE p1.artikelpreis_id = p2.artikelpreis_id ), p1.nettopreis = (SELECT (bruttoneu / (100 + p2.mwstsatz ) *100 ) as nettopreis FROM artikelpreiseaenderung p2 WHERE p1.artikelpreis_id = p2.artikelpreis_id ) WHERE p1.artikelpreis_id = p2.artikelpreis_id; was mache ich falsch? Danke Gruss KH |
AW: SQL-Statement funkt nicht
Erstelle einen Execution Block und drreh die Logik um:
Schleife über die Ändetungen und dann Update. Noch besser wäre es aber, die Artikeltabelle zu "snow-flaken" ( Erweiterung um Gültigkeitsbereich) |
AW: SQL-Statement funkt nicht
Das Update Statement selbst braucht auch eine Where Clause, wenn Du bei einem reinen Update Statement bleiben willst.
zb.
SQL-Code:
Ich weiß aber nicht, ob 'where.. in..' so in Firbird funktioniert, notfalls dazu die Syntax anpassen.
update artikelpreise p1
set p1.bruttopreis = (SELECT bruttoneu as bruttopreis FROM artikelpreiseaenderung p2 WHERE p1.artikelpreis_id = p2.artikelpreis_id), p1.nettopreis = (SELECT (bruttoneu / (100 + p2.mwstsatz) * 100) as nettopreis FROM artikelpreiseaenderung p2 WHERE p1.artikelpreis_id = p2.artikelpreis_id) where p1.artikelpreis_id in (select artikelpreis_id from artikelpreiseaenderung ) |
AW: SQL-Statement funkt nicht
IIRC funktioniert das so (kann ich hier aber gerade mangels Firebird nicht probieren), aber man kann zur Not auch auf EXISTS ausweichen.
|
AW: SQL-Statement funkt nicht
Ich hab hier kein FB, aber wenn wir das demokratisch regeln können:
Ich bin auch dafür, dass es funktioniert! ;) |
AW: SQL-Statement funkt nicht
:cheers:
|
AW: SQL-Statement funkt nicht
@khh: Ich würde dich bitten wenigstens den Beitragstitel in ordentlichen Deutsch zu verfassen, damit man mit der Suche zumindest eine minimale Chance hat den Beitrag zu finden. Danke.
|
AW: SQL-Statement funkt nicht
Aber die Beiträg müsen nich in orntlichen deutsch oder? ;)
|
AW: SQL-Statement funkt nicht
Zitat:
wobei ich hier überlege, ob 'where.. in..' nicht ziemlich zeitintensiv ist? |
AW: SQL-Statement funkt nicht
Zitat:
"Das SQL-Statement funkt nicht". Eine klare unmißverständliche Aussage. Ich frage mich nur was sollte ein SQL-Statement funken? Sind da bestimmte Frequenzen von betroffen? Handelt es sich vllt. um Morsecodes? (nein, dann würde man von Morsen und nicht von Funken sprechen) Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz