SQL Statement
Seramis
- sonstiges
Hallo Zusammen!
Was mach ich hier falsch?
UPDATE AVEKBRSFITR a, AVCODFIL_V b SET a.BU_DEF_DVP = 0 where a.FILNR2 = b.FIL_NR2 and
b.TYP = 'A' and
a.TRANCHE = 1 and
a.RSN_EKBRS = 1414
danke für eure hilfe!
mfg stefan
b.TYP = 'A' and
Du kannst einen string nicht mit = vergleichen
b.Typ LILE 'A'
b.TYP = 'A' and
Du kannst einen string nicht mit = vergleichenb.Typ LILE 'A'
Du Erzählst Unsinn...
b.TYP = 'A' and
Du kannst einen string nicht mit = vergleichenb.Typ LILE 'A'
Du Erzählst Unsinn...
ach geht das? naja kann mich auch irren sorry
habs zumindest in der schule so gelernt :/
ich glaube das problem liegt ihrengdo beim SET!
b.TYP = 'A' and
Du kannst einen string nicht mit = vergleichenb.Typ LILE 'A'
Du Erzählst Unsinn...
ach geht das? naja kann mich auch irren sorry
habs zumindest in der schule so gelernt :/
Dann mußte wohl Deinem Lehrer mal das manual um die Ohren schlagen :-)
Das sgat nämlich dazu:
Wozu der Like Operator dient, steht hier
http://dev.mysql.com/doc/mysql/de/String_comparison_functions.html#IDX1169
Zum Schraube machen, sag ich Dir nur, wenn man keine Ahnung hat sollte man einfach mal nix schreiben.
Und das Du keine Ahnung hast hast bereits Eindrucksvoll unter Beweis gestellt.
TomIRL
b.Typ LIKE 'A'
b.Typ LIKE 'A'
Vielleicht einfach mal nix schreiben...
Schaue Dir zunächst ma an was in Deinem SQL String drinsteht und ob das dem entspricht was Du erwartest.
print ("$sql");
Und dann lase Dir die Fehler anzeigen.
echo mysql_errno() . ": " . mysql_error() . "\n";
Und dann lasse Dich hier nicht von Leuten mit Halbwissen abfrühstücken.
Hilfe zur Selbsthilfe ist gefragt, und auch debuggen will gelernt sein.
TomIRL
nur die Ruhe
nicht gleich die schraube machen
ruhig atmen und auf 10 zählen
gudn tach!
vielleicht sollte noch eine anmerkung zu TomIRLs posting gegeben werden, naemlich dass diese fehlerbehandlung speziell fuer php (in verbindung mit mysql) ist.
wenn du, Seramis, nicht php oder nicht mysql verwenden solltest, waere schoen, wenn du entsprechende informationen darueber preisgeben koenntest.
prost
seth
Hallo Zusammen!
Was mach ich hier falsch?
UPDATE AVEKBRSFITR a, AVCODFIL_V b SET a.BU_DEF_DVP = 0 where a.FILNR2 = b.FIL_NR2 and
b.TYP = 'A' and
a.TRANCHE = 1 and
a.RSN_EKBRS = 1414danke für eure hilfe!
mfg stefan
BVersuche Dir doch mal klar zu machen ob das Statement dem entspricht was Du erreichen willst:
Da oben steht:
Verändere die Tabelle AVEKBRSFITR (was ist das eigentlich für ein beknackter Name, da kann man sich doch was übersichtlicheres suchen.)und die Tabelle AVCODFIL_V,
Und zwar wie folgt: a.BU_DEF_DVP = 0
Also nur das eine Feld soll verändert werden?
Und dann kommen Deine Bedingungen:
a.FILNR2 = b.FIL_NR2 and
b.TYP = 'A' and
a.TRANCHE = 1 and
a.RSN_EKBRS = 1414
Erscheint Dir das logisch?
Mir nicht..
Wie das Update Statement korrekt verwendet wird, steht hier:
http://dev.mysql.com/doc/mysql/de/UPDATE.html
TomIRL
Hello,
a.FILNR2 = b.FIL_NR2 and
b.TYP = 'A' and
a.TRANCHE = 1 and
a.RSN_EKBRS = 1414
Erscheint Dir das logisch?
Mir nicht..
Wieso, er bildet das kartesische Pordukt aller Sätze und schränkt es nach und nach ein.
a.FILNR2 = b.FIL_NR2 and
b.TYP = 'A' and
a.TRANCHE = 1 and
a.RSN_EKBRS = 1414
Wenn man es so schreibt, sieht man auch, dass beide Tabellen erst gefiltert werden und dann das Produkt über die beiden Filtermengen gebildet wird, aber nur an den Stellen, an denen die Bindung
a.FILNR2 = b.FIL_NR2
besteht.
Es kann also durchaus ein sinnvolles Statement sein.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
yo,
BVersuche Dir doch mal klar zu machen ob das Statement dem entspricht was Du erreichen willst:
oder du machst dir klar, was er erreichen will. nicht alles, was man nicht versteht macht automatisch keinen sinn.
Verändere die Tabelle AVEKBRSFITR (was ist das eigentlich für ein beknackter Name, da kann man sich doch was übersichtlicheres suchen.)und die Tabelle AVCODFIL_V
die zweite tabelle AVCODFIL_V wird meiner meinung nach nicht verändert. insofern ändert er nur eine spalte in einer tabelle. wenn ich den sinn des join richtig verstehe, dann geht es ihm darum, die richtigen datensätze der gewünschten spalte in der ersten tabelle zu verändern. und diese gewünschten datensätze stehen im zusammenhang mit der zweiten tabelle. deshalb bildet er den join und nicht um werte in zwei tabellen zu verändern.
Erscheint Dir das logisch?
Mir nicht..
wie war das, was du anderen immer so gerne schreibt. wenn man keine ahnung hat, einfach mal nichts schreiben .... ?
Ilja
Hello,
Was mach ich hier falsch?
UPDATE AVEKBRSFITR a, AVCODFIL_V b SET a.BU_DEF_DVP = 0 where a.FILNR2 = b.FIL_NR2 and
b.TYP = 'A' and
a.TRANCHE = 1 and
a.RSN_EKBRS = 1414
Das könnte eine Typunverträglichkeit sein.
Wenn BU_DEF_DVP von einem Stringtyp (auch ENUM und SET sind Stringtypen) ist, dann muss es heißen
SET a.BU_DEF_DVP = '0'
Wenn man nicht rechnen will mit den Werten, dann kann und sollte man sie ohnehin immer in Häkchen übergeben. Das kann auch den zusätzlichen Nutzen des erhöhten Schutzes vor Injektion haben.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom