2016-12-15 6 views
0

Первые две колонки отлично работают, но я не знаю, как получить результаты для третьего столбца. Скажите, пожалуйста, как я могу иметь третий столбец, чтобы показывать данные на текущий год в соответствии с неделей. Просьба оказать помощь.Получить значение YTD

select "Builder","Traffic", sum(cast("Traffic" as int)) as YTD 
from trafficdatapcr 
where "Week" = '2016-12-11' 
group by "Builder","Traffic" 

Выборочные данные:

 Week   Builder    Traffic 

    2016-12-11  Macys     100 
    2016-10-11  Bloomingdales   15 
    2016-08-11  Saks     85 
    2016-02-11  Cole Haan    95 
    2015-12-25  Kroger     65 

Мои текущие результаты:

Builder   Traffic  YTD 
Macys    100   100 

Ожидаемые результаты:

Builder   Traffic  YTD 
Macys    100   100 
Saks    0    85 
Bloomingdales  0    15 
Cole Haan   0    95 
Kroger    0    65 
+0

Что такое неделя? –

+3

Пожалуйста, добавьте образцы данных и ожидаемые результаты;). –

+0

Пожалуйста, найдите сообщение, отредактированное выше. –

ответ

1

Ваш где положение является устранение записи, которые вы желаете , используйте случай для условия all у отображения трафика для нужной недели вместо пункта где

select "Builder" 
    , case when "Week" = to_date('2016-12-11',YYYY-MM-DD') then "Traffic" else 0 end as "Traffic" 
    , sum(cast("Traffic" as int)) as YTD 
from trafficdatapcr 
group by "Builder","Traffic" 
Order by week Desc 

Это кажется странным, однако, что если кто-то, чтобы выбрать 2016-10-11 Наивысший будет все даты .... поэтому, возможно, вы хотите условно просуммировать, а также ...

select "Builder" 
    , case when "Week" = to_date('2016-12-11','YYYY-MM-DD') then "Traffic" else 0 end as "Traffic" 
    , sum(case when "week"<=to_date('2016-12-11','YYYY-MM-DD') then cast("Traffic" as int) else 0 end) as YTD 
from trafficdatapcr 
group by "Builder","Traffic" 
Order by week Desc 

Этот путь

  • Macys будет показана как 0 0
  • Bloomingdales будет 15 15

Так второй запрос должен вернуть (assumign дату 2016-10-11), но в правильном порядке даты (не знаю, в каком порядке вы хотите)

Builder   Traffic  YTD 
Macys    0    0 
Saks    0    85 
Bloomingdales  15   15 
Cole Haan   0    95 
Kroger    0    65 
+0

Kroger покажет с 25 декабря падения с начала года. –

+1

@AQDeveloper да, я поймал эту ошибку и скорректировал дату до 2016-10-11. – xQbert

+0

Итак, нужна ли нам вторая инструкция запроса? –