Самостоятельное объединение и агрегирование на основе указанных c дат (красное смещение) - PullRequest
0 голосов
/ 04 марта 2020

enter image description here

Привет, ребята,

Я пытаюсь самостоятельно объединиться и получить данные в формате, однако я получаю неверные данные. Мне нужно подвести qty на основе art_no, site, manufact за каждую evt_start дату. И дата evt_start должна находиться между evt_start и date2.

select sum(a.qty) as over_all_qty,
b.art_no,b.site,b.evt,b.evt_start,a.manufact

from wo_sup a

left join wo_sup b on a.site = b.site
and a.art_no = b.art_no
and a.manufact = b.manufact
and a.evt_start = b.evt_start

where a.evt_start between b.evt_start and b.date2

group by 

b.art_no,b.site,b.evt,b.evt_start,a.manufact

Ответы [ 2 ]

1 голос
/ 05 марта 2020

Ваша дата evt_start (все 2020) меньше, чем столбец date2 для всех записей, кроме одной.

Итак, либо ваш набор данных неверен, либо вы хотите сделать следующее:

a.evt_start between b.date2 and b.evt_start

Таким образом, измените либо набор данных, либо условие «между», и вы получите все 4 строки в ответе.

0 голосов
/ 04 марта 2020

Ваше предложение where отменяет left join. Это работает в Redshift?

left join
wo_sup b
       on a.site = b.site and
          a.art_no = b.art_no and
          a.manufact = b.manufact and
          a.evt_start = b.evt_start and
          a.evt_start between b.evt_start and b.date2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...