2010-03-15 29 views
0

我有下面的表,它基本上是日常事務的摘要並且每晚都會被加載。SQL在蛾select中的最後一天

+++++++++++++++++++++++ 
+ DateCreated + Sale + 
+++++++++++++++++++++++ 
+ 20100101 + 1000 + 
+ 20100131 + 2000 + 
+ 20100210 + 2000 + 
+ 20100331 + 4000 + 
+++++++++++++++++++++++ 

我需要按月顯示銷售,但僅限於每月的最後一天。

JAN 2000 
FEB  0 
MAR 4000 

我大概可以用CASE在我的選擇做到這一點,但是這有效嗎?這是SQL Server 2000.

回答

0

我有一個日曆表,剛剛添加了一個「IsLastDayOfMonth」列,設置了每個月的最後一天。然後加入到我的查詢,只有「IsLastDayOfMonth」篩選和工作。

select a.datecreated,a.sale 
     from salesummary a 
inner join calendar c 
on a.datecreated = c.fulldatekey 
and c.IsLastDayOfMonth = 1 
group by a.datecreated,a.sale 
7

我的問答& D解決方案是建立一個日期,這是下個月的第一天,然後減去一天。

+0

哇,這是真棒解決方案! – Andrey 2010-03-15 16:38:37

1

你可以做這樣的事情,但它不會丟失數據顯示0:

select YEAR(DateCreated) as Year, MONTH(DateCreated) as Month, Sale 
from MyTable 
where DAY(DateCreated + 1) = 1 
相關問題