gleich wird es ein Großprojekt
Ja das geht, vorausgesetzt die IDs der Buchungsarten haben sich in den Versionen nicht geändert. Sollte folgende Lösung nicht funktionieren schreib mir mal, dann guck ich mir das gerne mal an.
SELECT TOP (5)
CAST(tArtikelHistory.fAnzahl AS INT) as Stückzahl,
tArtikelHistory.dGebucht as Buchungsdatum,
tBuchungsArt.cName as Buchungsart
FROM tArtikelHistory
LEFT JOIN tBuchungsArt
ON tArtikelHistory.kBuchungsart = tBuchungsArt.kBuchungsart
WHERE kArtikel = @key AND fAnzahl >0 AND tArtikelHistory.kBuchungsArt = 10
ORDER BY tArtikelHistory.dGebucht DESC
Die Zeile macht leider nicht das was du suchst, aber es gibt die Variante mit CAST, so wie ich sie verwendet habe.
Zur Variation der Reihenfolge:
Die Abfrage gibt die Reihenfolge an:
CAST(tArtikelHistory.fAnzahl AS INT) as Stückzahl,
tArtikelHistory.dGebucht as Buchungsdatum,
tBuchungsArt.cName as Buchungsart
Hier kommt also erst Stückzahl, Buchungsdatum, Buchungsart. Du kannst die Reihenfolge selbst anpassen, achte aber auf die Kommas. Nach dem Letzten Wert folgt KEIN KOMMA. Zwischen den Werten muss aber eins stehen....ist ja auch eine Aufzählung an Werten die du haben möchtest.
Du kannst die Spaltenbezeichnungen auch ändern. Dieses "as" gibt an, wie die Spalte bezeichnet werden soll in der Ausgabe. Also kannst du auch "as Stk" machen, wenn du magst.
Wenn du doch wieder alle Buchungen sehen willst, dann entferne in der vorletzten Zeile "AND tArtikelHistory.kBuchungsArt = 10"