SQL: 2 Column miteinander multiplizieren und diese dann in ein Column von einer anderen Tabelle speichern?
Hallo,
also so wie der Titel sagt eigetnlich...
Ich hab hier eine Artikel Tabelle und Bestellposition Tabelle.
Nun will ich die Menge * Preis von Artikel nehmen und diese in WERT von Bestellpostion speichern...
ich weiss die frage ist leicht aber auch wenn ich google kommen immer wieder verwirrende sachen bei raus..
bitte um hilfe
vielen dank
3 Antworten
Über welches Programm/welche Programmiersprache greifst du auf die Tabelle zu?
Am einfachsten (Pseudocode):
Eingabe ID
Eingabe Menge
Preis = SELECT Artikel.Preis FROM Artikel WHERE Artikel.ID = ID
Wert = Menge * Artikel
INSERT INTO bestellpositionen VALUES (ID, Wert);
Meinst du sowas in der Art?
INSERT INTO zieltabelle (ergebnis) SELECT (spalte1 * spalte2) as mult FROM quelltabelle
Genau, mult wäre nur Temporär, dürfte auf diese Weise auch ganz ohne das gehen, aber wenn man nachher damit arbeiten will gebe ich dem aus Gewohnheit immer einen Variablennamen den ich nachher wieder erkenne^^
Die Spalte, in der das gespeichert wird wäre in diesem Fall ergebnis.
kann ich es nicht sofort in das Column speichern ?
oder müsste man vom "mult" dann nochmal in Column speichern ?
wenn ja... wie ?
ich weiss ich frage viel.. entschuldige
Das sollte genau so funktionieren, also die Ergebnisse werden direkt in der Spalte ergebnis der Tabelle zieltabelle gespeichert.
Wenn du die Ergebnisse selbst bearbeiten willst dürftest du nur den letzten Teil ab dem SELECT benutzen und den Rest dann halt in der jeweiligen Programmiersprache erledigen.
INSERT INTO zieltabelle (ergebnis) SELECT (spalte1 * spalte2) as mult FROM quelltabelle
kann ich nicht das "as mult" weglassen und somit sofort in "ergebnis" speichern?
Wie gesagt, das wird ja schon direkt in ergebnis gespeichert, theoretisch müsste man das "as mult" auch einfach weglassen können, ändert aber nicht wirklich etwas an dem Ergebnis des Queries.
mir erscheint es auch leicht:
Du klickst auf das Feld, wo der Wert stehen soll. Dorthin schreibst Du ein Gleichheitszeichen. Danach klickt auf 1. Feld, ein Sternchen und danach klickt auf 2. Feld.
ich glaube ja
wäre mult nun ein temporerer speicherort oder wirklich der column in dem spalte1* spalte2 drin gespeichert wird ?