我有如下表:
年初至今SQL與標準
oDate value
------------------------
2017-01-01 10
2017-01-10 10
2017-02-04 20
2017-03-01 10
2017-03-06 30
2017-04-10 40
我想擁有的總供一個月的所有日期。因此,查詢應該是:
select datepart(month, oDate) month, SUM(value) TotalValue
from myTable
group by datepart(month, oDate)
如果我想有總對所有價值,我只需要跳過group by
部分並刪除datepart(month, oDate)
。
我有2個參數是@Month int
和@Year varchar(5)
。
現在的問題是:我想在選定的month
和year
中添加一些計算。
例如,如果參數爲@Month <= 3
和@Year <= '2017'
那麼總數爲(Jan/2017 TotalValue) + (Feb/2017 TotalValue) + (Mar/2017 TotalValue)
。
但是,如果參數爲@Month > 3
和@Year = '2017'
那麼總數爲(Jan/2017 TotalValue) + (Feb/2017 TotalValue) + (Mar/2017 TotalValue) + (Apr/2017 TotalValue * 2)
。
樣品結果:
隨着第一標準(@Month < = 3和@Year < = '2017')
TotalValue
------------
70
隨着第二標準(@Month> 3和@Year> =「2017 ')
TotalValue
-----------
150
在第二個標準中,2017年4月的總數是2
的倍數。所以40 * 2 = 80
。從2017年1月到2017年3月的總價值爲70
,那麼第二個標準的年份爲70 + 80 = 150
。
有沒有辦法做到這一點?
請指教,歡呼聲。
請提供一些樣本數據和樣本結果,目前尚不清楚您要求的內容。 – JeffUK
爲什麼乘以'April'2?如果'@month> 3'爲什麼你總結'月= 3'? –
@JeffUK,完成。希望有助於理解我的問題。 – Haminteu