1

可能なすべての年間費用を追加しようとしていますが、私のケースステートメントは正しくありません.

2013 年を選択した場合、2006 年から 2013 年までのすべての費用を追加できるようにしたいと考えています。または、私は間違った方法で進んでいますか。

 SELECT ID, Sum(Amount) As Total
FROM ABCD
WHERE Expenses = 'Actual' AND  
      AcountType = 'Expense' AND 
      CASE WHEN 'Myselectionparameter' = 2013 
           THEN ( YearID =2013 or YearID = 2012 or YearID = 2011 or YearID = 2010 or YearID = 2009 or YearID = 2008  Or YearID = 2007 or YearID = 2006 )
      END 
GROUP BY ID
4

2 に答える 2

1

あなたの質問がパラメーターに関するものであると仮定しましょう。そのような場合、パラメーター名の前に @ を使用します。

それからあなたは特定の答えを持っています...

SELECT ID, Sum(Amount) As Total
FROM ABCD
WHERE Expenses = 'Actual' AND  
      AcountType = 'Expense' AND 
      (@Myselectionparameter = 2013 AND YearID  BETWEEN 2006 AND 2013)
      END 
GROUP BY ID

パラメータが2011年と言う場合はどうですか?あなたは2006年から2011年まで何になりたいですか?そのような場合、一般的な答えがあります:

SELECT ID, Sum(Amount) As Total
FROM ABCD
WHERE Expenses = 'Actual' AND  
      AcountType = 'Expense' AND 
      YearID  BETWEEN 2006 AND @Myselectionparameter
GROUP BY ID
于 2013-07-05T15:43:45.330 に答える
1

パラメータMyselectionparameterですか?int

SELECT ID, Sum(Amount) As Total
FROM   abcd 
WHERE  ... 
       AND ( @Myselectionparameter IS NULL 
              OR YearID BETWEEN 2006 AND @Myselectionparameter ) 
GROUP  BY id 
于 2013-07-05T15:37:01.980 に答える