1

特定の年の合計金額を取得するための 2 つの SQL クエリと、特定の年の特定の月の金額を知るための 2 つの SQL クエリを組み合わせたい

SELECT SUM(money) As Anual FROM Deposito WHERE Year(FechaDeposito)=2011

SELECT SUM(money) As monthly FROM Deposito WHERE Year(FechaDeposito)= 2011 AND Month(FechaDeposito)=10

最も効率的な方法でそれを行う方法は?

4

1 に答える 1

3

2 つのクエリを組み合わせるだけで、

SELECT SUM(money) As Anual,
       SUM(CASE WHEN Month(FechaDeposito)=10 THEN money else 0 end) as monthly
  FROM Deposito
 WHERE Year(FechaDeposito)=2011

しかし、それはひどく実行されます。理想的には、 にインデックスが必要FechaDepositoであり、列に対して関数を実行する代わりに、テストする日付範囲を構築します。

SELECT SUM(money) As Anual,
       SUM(CASE WHEN Month(FechaDeposito)=10 THEN money else 0 end) as monthly
  FROM Deposito
 WHERE FechaDeposito >= '2011-01-01' and FechaDeposito < '2012-01-01'
于 2012-12-05T18:54:11.623 に答える