我想获得去年的日期和当前日期,但是当我运行查询输出时显示为0

时间:2016-08-18 06:11:03

标签: sql sql-server sql-server-2008 tsql

这是我的表

CREATE TABLE [dbo].[FactARR]
(
    [PropertyKey] [int] NULL, 
    [Datekey] [numeric](8, 0) NULL, 
    [ARRDate] [date] NULL, 
    [NetRoomRevenue] [numeric](38, 3) NULL, 
    [OccupiedRooms] [numeric](38, 2) NULL, 
    [ARR] [numeric](38, 6) NULL
)

我的查询: enter image description here

SELECT 
    SUM(CASE WHEN YEAR(ARRDate) = YEAR(getdate()) -1 
               THEN REPLACE (arr, ',', '')
               ELSE 0 
        END) Previous_Year_sum,
    ARRDate,
    SUM(CASE WHEN YEAR(ARRDate) = YEAR(getdate()) 
                THEN REPLACE (arr, ',', '')
                ELSE 0 
        END) current_year
FROM 
    FactARR
GROUP BY 
    ARRDate
ORDER BY
    ARRDate

1 个答案:

答案 0 :(得分:0)

低于查询结果,仅限去年2015年。

YEAR(getdate()) -1

现在你的情况如下,

SUM(CASE WHEN YEAR(ARRDate) = YEAR(getdate()) -1 

以上条件仅相当于ARRDate油田的2015年。所以2015年只有价值..剩余年份为零..

**

  

你会尝试下面的查询,使用少于。它将需要所有上一年的数据。它工作正常。

 SUM(CASE WHEN YEAR(ARRDate) < YEAR(getdate())  

**