0
我正在研究基於日期列中的值對SQL表中的數據執行一些算術除法的SQL查詢。在SQL表中按日期字段中的天數除數值
爲了詳細說明,我有以下SQL表預訂
id Date Type Quantity Price
3 2014-11-04 Sweet 2500 23
9 2014-12-04 Sweet 5000 30
10 2014-12-04 Midale 2500 25.4
11 2014-11-04 Sweet 5000 45
現在,我想按類型和日期分組對數量列了一些算術運算。
我用下面的查詢
SELECT
Type,
COUNT(Id) AS Trades,
SUM(Quantity) AS M3,
ROUND((6.2898*SUM(Quantity))/31,4) AS BBLperDay,
CAST(Date as date) AS TradeMonth,
ROUND(SUM(Quantity*Price)/Sum(Quantity),4) AS WeightedAverage
FROM Deals
GROUP BY
Type,CAST(Date as date)
上述查詢返回
Type Trades M3 BBLperDay TradeMonth
Sweet 2 7500 1521.7258 2014-11-04
Midale 1 2500 507.2419 2014-12-04
Sweet 1 5000 1014.4839 2014-12-04
上述結果是正確的,但我在表達式硬編碼的天數爲31中的日期
6.2898*SUM(Quantity)/31 AS BBLperDay
有沒有一種方法我可以做的只是從日期列中取得一個基於月份的值。如果月份是日期列中的十二月份,則該值將自動爲31,因爲十二月份的天數爲31.
您正在使用什麼版本的SQL Server?在較新的版本中,有一個函數(['EOMONTH()'](http://technet.microsoft.com/en-us/library/hh213020.aspx))會給你一個給定月份的天數。 – alroc 2014-12-04 21:43:45