Gibt es eine Möglichkeit, die erste Summe für Jahr = 2014 und die zweite Summe für Jahr = 2015 zu filtern?SQL Server: Unterschiedliches Datumsfilter pro Spalte
Select productName, sum(sales), sum(sales)
From Invoices
Where productName = ?
Es scheint, super einfach, aber der Moment, als ich Where year(InvDate) = 2014
hinzufügen Ich weiß, ich bin Filterung alle Ergebnisse für dieses Jahr, wenn ich pro Zeile beiden Jahre benötigen.
Doing Where year(InvDate) = 2014 OR year(InvDate) = 2015
würde mir 2 Zeilen geben, ich möchte nur 1 Zeile.
Ergebnis Satz
ProductName | sum of 2014 sales for this product | sum of 2015 sales for this product
EDIT sein sollte: Wie berechnen (sales_2015 - sales_2014)/sales_2014
SELECT vendorpn, (sum(case when year(InvDate) = 2015 then sales else 0 end) - sum(case when year(InvDate) = 2014 then sales else 0 end))/
sum(case when year(InvDate) = 2015 then sales else 0 end)
from BG_Invoice a inner join BG_Parts b on a.material = b.material
where customer = 10011484 and vendorpn = 'LM321-118V'
group by vendorpn
having sum(sales) > 0
ist mir 0,055644 geben. Rechner gibt mir 0.05892350932. Meine sales
Spalte dataType ist decimal(18,2)
EDIT2: Sieht so aus, als müsste ich mehr als 2 Dezimalstellen für die Division verwenden.
(CONVERT(DECIMAL(18,8),sum(case when year(InvDate) = 2015 then sales else 0 end))
Schön, wird akzeptiert. –
Schnelle Frage, mein wirkliches Ziel ist es, '(sales_2015 - sales_2014)/sales_2014' zu berechnen. Wie würde ich das bekommen? Veröffentlichen, was ich in einer Bearbeitung versucht habe. –