Select case Vergleich von zwei Spalten
Ich würde gerne eine Abfrage, verwendet die höhere der beiden Werte/Spalten, wenn ein bestimmter anderer Wert für den Datensatz wahr ist.
Ich versuche, einen Bericht-account Betriebe. Leider ist die DB in der Regel speichert den Wert von Bargeld in eine Spalte namens HoldingQty
, während für jede andere Art der holding (Aktien, Anleihen, Investmentfonds), die es speichert es in eine Spalte namens Qty
.
Das problem ist, dass manchmal der Wert der cash gespeichert in Qty
nur, und manchmal ist es in beiden Qty
und HoldingQty
. Natürlich manchmal ist es Daten nur im HoldingQty
wie oben erwähnt.
Im Grunde möchte ich meine select-Anweisung zu sagen: "wenn die Sicherheit Bar, mit Blick sowohl auf Menge und halten Menge und geben Sie mir den Wert auch immer größer ist. Andernfalls, wenn die Sicherheit ist nicht cash geben Sie mir nur qty".
Wie würde ich schreiben, dass in T-SQL? Hier ist mein Versuch:
SELECT
h.account_name, h.security_name, h.security_type, h.price,
(CASE:
WHEN security_type = 'cash'
THEN (WHEN h.qty > h.holdingqty
THEN h.qty
ELSE h.holdingqty)
ELSE qty) as quantity,
h.total_value
FROM
holdings h
WHERE
...........
Verwenden Sie eine zusammengesetzte case-Anweisung
case when security_Type = 'cash' and h.qty<=h.holdingqty then h.holdingqty else h.qty end as quantity
diese im Grunde sagt, wenn Typ ist cash und holdingqty ist > oder gleich Menge verwenden holdingqty, anderweitig zu verwenden qty. da wir wissen, dass, wenn es sich nicht um Bargeld wir verwenden immer die Menge, änderte ich die Reihenfolge ein bisschen zu vereinfachen, werden die case-Anweisung.Seien Sie vorsichtig, wenn Sie diese Spalten null-Werte zulassen.
InformationsquelleAutor Mike O. | 2015-09-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre Abfrage korrekt ist, müssen aber einige syntax-Einordnung, versuchen Sie folgenden code
InformationsquelleAutor Anuj Tripathi
Fast da!
InformationsquelleAutor LordBaconPants
Können Sie erreichen dies mit einer verschachtelten
case
Ausdruck:InformationsquelleAutor Mureinik