SELECT auction_id, account_no, branch_address
FROM Table1
LEFT JOIN Table2 ON Table1.'aul_id' = Table2.'aul_id'
WHERE Table2.'date' = '2018-03-20'
GROUP BY Table1.'branch_address'
HAVING Count(*) >= '10' AND Count(*) <= '10'
Но это возвращает только 1 запись каждого, где он должен возвращать 10
SELECT
auction_id,
account_no,
branch_address
FROM
Table1
LEFT JOIN
Table2
ON Table1.'aul_id' = Table2.'aul_id'
WHERE
Table2.'date' = '2018-03-20'
AND Table1.'branch_address' IN
(
SELECT
Table1.'branch_address'
FROM
Table1
LEFT JOIN
Table2
ON Table1.'aul_id' = Table2.'aul_id'
WHERE
Table2.'date' = '2018-03-20'
GROUP BY
Table1.'branch_address'
HAVING
Count(*) >= '10'
AND Count(*) <= '10'
)
Count(*) >= '10' AND Count(*) <= '10'
может быть Count(*) = '10'
Попробуйте запустить запрос без предложения и проверьте значение count (*).
Вы получите ответ. Пример запроса оракула был добавлен ниже.
------------------------------------------КОД------- ------------------------
create table table1(branchaddress varchar2(10), aul_id number);
insert into table1 values('address1', 10);
insert into table1 values('address1', 10);
insert into table1 values('address2', 10);
insert into table1 values('address2', 10);
create table table2(branchaddress varchar2(10),aul_id number );
insert into table2 values('address1', 10);
insert into table2 values('address2', 10);
commit;
SELECT table1.branchaddress, count(*)
FROM Table1, table2
where Table1.branchaddress = Table2.branchaddress(+)
GROUP BY Table1.branchaddress
HAVING Count(*) >= 2 AND Count(*) <= 10
HAVING Count(*) = '10'
...