Это можно сделать с помощью сканирования одной таблицы с помощью предложения HAVING
:
SQL Fiddle
Настройка схемы Oracle 11g R2 :
CREATE TABLE table_name ( Client_Number, sales_depart, Netto, Number_Invoice, Invoice_Date ) AS
SELECT 1022562, '0140', 113, 51545121188, DATE '2018-04-11' FROM DUAL UNION ALL
SELECT 1022562, '0140', 139, 5586258568, DATE '2018-04-01' FROM DUAL UNION ALL
SELECT 1022564, '0140', 171, 5586713889, DATE '2018-03-22' FROM DUAL UNION ALL
SELECT 1022565, '0140', 211, 5587169210, DATE '2017-03-22' FROM DUAL UNION ALL
SELECT 1022566, '0140', 259, 5587624531, DATE '2016-03-22' FROM DUAL UNION ALL
SELECT 1022567, '0140', 319, 5588079852, DATE '2015-03-23' FROM DUAL UNION ALL
SELECT 1022568, '0140', 392, 5588535173, DATE '2014-03-23' FROM DUAL UNION ALL
SELECT 1022569, '0140', 483, 5588990494, DATE '2013-03-23' FROM DUAL UNION ALL
SELECT 1022570, '0140', 594, 5589445815, DATE '2012-03-23' FROM DUAL UNION ALL
SELECT 1022571, '0140', 730, 5589901136, DATE '2011-03-24' FROM DUAL UNION ALL
SELECT 1008144, '0530', 898, 5590356457, DATE '2018-01-31' FROM DUAL UNION ALL
SELECT 1008145, '0530', 104, 5590811778, DATE '2018-02-20' FROM DUAL UNION ALL
SELECT 1008146, '0530', 358, 5591267099, DATE '2017-02-20' FROM DUAL UNION ALL
SELECT 1008147, '0530', 671, 5591722420, DATE '2016-02-21' FROM DUAL UNION ALL
SELECT 1008148, '0530', 055, 5592177741, DATE '2015-02-21' FROM DUAL UNION ALL
SELECT 1008149, '0530', 528, 5592633062, DATE '2014-02-21' FROM DUAL UNION ALL
SELECT 1008150, '0530', 109, 5593088383, DATE '2013-02-21' FROM DUAL UNION ALL
SELECT 1016058, '0130', 825, 5593543704, DATE '2018-01-18' FROM DUAL UNION ALL
SELECT 1051643, '0290', 704, 5593999025, DATE '2018-01-30' FROM DUAL UNION ALL
SELECT 1051643, '0290', 175, 5595199025, DATE '2017-01-30' FROM DUAL UNION ALL
SELECT 1049433, '0180', 786, 5594454346, DATE '2018-02-20' FROM DUAL UNION ALL
SELECT 1010219, '0180', 117, 5594909667, DATE '2018-02-28' FROM DUAL UNION ALL
SELECT 1033233, '0180', 754, 5595364988, DATE '2018-02-28' FROM DUAL UNION ALL
SELECT 1004914, '0160', 767, 5595820309, DATE '2018-02-14' FROM DUAL UNION ALL
SELECT 1011699, '0140', 244, 5596275630, DATE '2018-02-20' FROM DUAL UNION ALL
SELECT 1007323, '0160', 290, 5596730951, DATE '2018-04-19' FROM DUAL UNION ALL
SELECT 1004914, '0160', 036, 5597186272, DATE '2018-02-07' FROM DUAL UNION ALL
SELECT 1005837, '0530', 645, 5597641593, DATE '2018-04-19' FROM DUAL;
Запрос 1 :
SELECT sales_depart,
COUNT( client_number )
FROM (
SELECT sales_depart,
client_number
FROM table_name
GROUP BY
sales_depart,
client_number
HAVING MIN( Invoice_date ) >= DATE '2018-01-01'
)
GROUP BY sales_depart
Результаты :
| SALES_DEPART | COUNT(CLIENT_NUMBER) |
|--------------|----------------------|
| 0140 | 3 |
| 0530 | 3 |
| 0180 | 3 |
| 0130 | 1 |
| 0160 | 2 |