2016-04-21 62 views
0

我有一個視圖返回this resultSQL Server:日期大於eomonth時的SUM金額

enter image description here

我想總結其中dateValidite大再按一定end of month(更改)

例如每月的最後一天是「2016年1月31日」,所以我將總結所有的金額量(MontantAuto),其中DateValidite > last day of month

我使用這個查詢,但是這個和我得到的是不正確

select 
    a.Monnaie 
    , a.Category 
    , a.Personne 
    , EOMONTH(DATEADD(mm,-1,a.DateValidite)) as Previous 
    , sum(b.MontantAuto) As mnt 
from 
    olap.tf_autorisation_balance a 
inner join 
    olap.tf_autorisation_balance b on a.Id = B.Id 
where 
    EOMONTH(DATEADD(mm,-1,a.DateValidite)) < b.DateValidite 
group by 
    a.Monnaie, a.Category, a.Personne, a.DateValidite 

回答

0

將您的請求更改爲:

where EOMONTH(DATEADD(mm,-1,a.DateValidite)) < CONVERT(VARCHAR(10), b.DateValidite, 103) 
+0

它不起作用。我收到此錯誤消息。 「從字符串轉換日期和/或時間時轉換失敗。」 「DateValidite」實際上是一個日期時間,爲什麼我必須將其轉換? – yasmine92