2016-09-06 3 views
-2

Так скажем, у меня есть таблицы - действия и отчеты, которые выглядят следующим образом:SQL - подсчитать количество записей из одной таблицы, используя диапазон дат из другой таблицы

Действие ТАБЛИЦА:

 
action_id customer start_time  end_time 
101   A   2016-01-01 15:00 2016-01-02 15:00 
102   B   2016-01-01 15:00 2016-01-01 20:00 
103   A   2016-01-01 23:00 2016-01-02 23:00 

отчетов ТАБЛИЦА:

 
rec_id customer   time   
1001  A   2016-01-01 16:00 
1002  A   2016-01-01 20:00 
1003  A   2016-01-02 17:00 
1004  B   2016-01-01 15:50 

Я хочу, чтобы сосчитать все записи во второй таблице, которая произошла в start_time и END_TIME 1-й таблицы и группа его action_id, клиент.

мой ожидаемый результат должен быть:

 
action_id customer count (rec_id)   
101  A    2 
102  B    1 
103  A    1 

Спасибо за любую помощь

+0

А вы пробовали ** **, что – RiggsFolly

ответ

0
select 
    a.action_id,a.customer,count(*) as cnt 
    from 
    records r 
    join 
    Actions a 
    on r.customer=a.customer and 
    r.time between a.start_time and a.end_time 
    group by a.action_id,a.customer 
+0

спасибо, однако конечный результат без учета временных критериев (? хотя мы и определили его) , поэтому, используя мой предыдущий пример, клиент A-cnt: 3, для обоих action_id: 101 и 103 – alon420

Смежные вопросы