Ich berechne historischen Betrag aus einer Tabelle in Jahren (ex. 2015-2016, 2014-2015, etc.) Ich möchte Know-how suchen, wenn es effizienter ist, es zu tun einen Stapel oder wiederholen Sie die Abfrage mehrmals nach dem erforderlichen Datum gefiltert.SQL-Effizienz auf Datumsbereich oder separate Tabellen
Vielen Dank im Voraus!
OPTION 1:
select
id,
sum(case when year(getdate()) - year(txndate) between 5 and 6 then amt else 0 end) as amt_6_5,
...
sum(case when year(getdate()) - year(txndate) between 0 and 1 then amt else 0 end) as amt_1_0,
from
mytable
group by
id
OPTION 2:
select
id, sum(amt) as amt_6_5
from
mytable
group by
id
where
year(getdate()) - year(txndate) between 5 and 6
...
select
id, sum(amt) as amt_1_0
from
mytable
group by
id
where
year(getdate()) - year(txndate) between 0 and 1
Nun, Sie könnten einfach beide Versionen ausprobieren und für sich selbst sehen ... Ich wette auf Version 1. –