Yıl = 2014 için birinci toplamı ve yıl için ikinci toplamı filtrelemenin bir yolu var mı?SQL Server: sütun başına farklı tarih filtresi
Select productName, sum(sales), sum(sales)
From Invoices
Where productName = ?
Süper basit görünüyor ama Where year(InvDate) = 2014
eklemek an ben satır başına her iki seneye ihtiyacı olduğunda ben, o yıl için tüm sonuçları filtreleme olduğumun farkındasınızdır.
Where year(InvDate) = 2014 OR year(InvDate) = 2015
bana 2 satır verebilir, sadece 1 satır istiyorum.
Sonuç kümesi
ProductName | sum of 2014 sales for this product | sum of 2015 sales for this product
DÜZENLEME olmalıdır: hesaplamak için nasıl -/(sales_2015 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
sales_2014 bana 0.055644 veriyor. Hesap makinesi bana 0.05892350932 veriyor. Benim sales
sütun dataType değeri decimal(18,2)
EDIT2: Bölme için 2'den fazla ondalık basamak kullanmam gerekiyor.
(CONVERT(DECIMAL(18,8),sum(case when year(InvDate) = 2015 then sales else 0 end))
Güzel, kabul edecektir. –
Hızlı soru, gerçek hedefim hesaplamaktır (sales_2015 - sales_2014)/sales_2014'. Bunu nasıl alabilirim? Bir düzenlemede denediğimi gönderiyorum. –