Benutzer mit den meisten Antworten
SQL-Statement gesucht

Frage
-
Hallo,
ich will ein bestimmtes SQL-Statement auf eine Datenbank von einer anderen Software ausführen.
Die Software hat folgende zwei Tabellen.Tabelle 'Artikel' mit folgenden zwei Spalten:
ArtikelNr Preiseinheit Preis
000055 2 68,00
000056 4 16,00
000057 3 183,50Tabelle 'Konstanten' mit den Spalten:
KonPreiseinheit_0 KonPreiseinheit_1 KonPreiseinheit_2 KonPreiseinheit_3 KonPreiseinheit_4
1 100 200 500 1000Die Werte verweisen auf die Tabelle 'Konstanten', welche nur aus einem Datensatz besteht.
Preiseinheit mit dem Wert 2 in der Tabelle 'Artikel' bedeutet, dass ich in der Tabelle 'Konstanten'
in der Spalte KonPreiseinheit_2 den Wert auslesen muss (Ergebnis ist 200).
Preiseinheit mit Wert 4 in der Spalte KonPreiseinheit_4 den Wert auslesen und
Preiseinheit mit Wert 3 in der Spalte KonPreiseinheit_3 den Wert auslesen.Das ist etwas seltsam, aber ist durch die andere Software so vorgeben.
Wie kann ich das SELECT-Statement so erstellen, dass ich z.B. statt der Preiseinheit 2 den
dazugehörigen Wert 200 aus der Tabelle 'Konstanten' erhalte?
Weiterhin will ich mit dem Wert 200 nur rechnen und soll nicht in meiner DataTable als Spalte enthalten sein.SELECT ArtikelNr, Preis / ? As Einzelpreis FROM Artikel
Für ? müsste der Wert von KonPreiseinheit_x aus der Tabelle 'Konstanten' stehen.
Alexander
Antworten
-
Hallo Alexander,
Na, das ist aber ein gut durchdachtes Konstrukt ;-)
Kannst Du über ein CASE WHEN Statement abbilden:
SELECT A.Artikelnr ,A.Preis / (CASE A.Preiseinheit WHEN 0 THEN KonPreiseinheit_0 WHEN 1 THEN KonPreiseinheit_1 WHEN 2 THEN KonPreiseinheit_2 WHEN 3 THEN KonPreiseinheit_3 WHEN 4 THEN KonPreiseinheit_4 ELSE 1.0) AS Einzelpreis FROM Artikel AS A ,Konstanten AS K
Olaf Helper
Blog Xing- Als Antwort vorgeschlagen Uwe RickenMVP Montag, 10. Dezember 2012 07:34
- Als Antwort markiert AlexanderRi Montag, 10. Dezember 2012 08:55
Alle Antworten
-
Hallo Alexander,
Na, das ist aber ein gut durchdachtes Konstrukt ;-)
Kannst Du über ein CASE WHEN Statement abbilden:
SELECT A.Artikelnr ,A.Preis / (CASE A.Preiseinheit WHEN 0 THEN KonPreiseinheit_0 WHEN 1 THEN KonPreiseinheit_1 WHEN 2 THEN KonPreiseinheit_2 WHEN 3 THEN KonPreiseinheit_3 WHEN 4 THEN KonPreiseinheit_4 ELSE 1.0) AS Einzelpreis FROM Artikel AS A ,Konstanten AS K
Olaf Helper
Blog Xing- Als Antwort vorgeschlagen Uwe RickenMVP Montag, 10. Dezember 2012 07:34
- Als Antwort markiert AlexanderRi Montag, 10. Dezember 2012 08:55
-
Hallo Olaf,
vielen Dank für die Hilfe. Eine Änderung (END fehlt) ist noch notwendig:SELECT A.Artikelnr
,A.Preis /
(CASE A.Preiseinheit
WHEN 0 THEN KonPreiseinheit_0
WHEN 1 THEN KonPreiseinheit_1
WHEN 2 THEN KonPreiseinheit_2
WHEN 3 THEN KonPreiseinheit_3
WHEN 4 THEN KonPreiseinheit_4
ELSE 1.0 END) AS Einzelpreis
FROM Artikel AS A
,Konstanten AS K
Alexander