代码之家  ›  专栏  ›  技术社区  ›  Saif Khan

SQL在moth select中的最后一天

  •  0
  • Saif Khan  · 技术社区  · 14 年前

    我有下表,它基本上是每日事务的摘要,每夜加载一次。

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

    我需要按月显示销售情况,但只显示每个月的最后一天。

    JAN    2000
    FEB       0
    MAR    4000
    

    在我的select中,我也许可以用CASE来完成这个任务,但是这有效率吗?这是SQL Server 2000。

    3 回复  |  直到 14 年前
        1
  •  7
  •   Yes - that Jake.    14 年前

    我的问题;解决这个问题的方法是构造一个日期,即下个月的第一天,然后减去一天。

        2
  •  1
  •   D'Arcy Rittich    14 年前

    您可以这样做,但对于丢失的数据,它不会显示0:

    select YEAR(DateCreated) as Year, MONTH(DateCreated) as Month, Sale
    from MyTable
    where DAY(DateCreated + 1) = 1
    
        3
  •  0
  •   Saif Khan    14 年前

    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