Вы не можете запросить orders
таблицу для данных, которые она не содержат. Или, если это так, вам нужна таблица всех доступных дат. Если у вас есть таблицы календаря, то вы делаете такой запрос, как:
select c.*
from calendar c left outer join
(select distinct cast(date_add as date) as date_add
from orders
) o
on c.date = o.date_add
where o.date_add is null
Примечание: Вам необходимо конвертировать date_add
на дату (удаление временной части). Это зависит от базы данных. Вышеупомянутый синтаксис SQL Server. Это также может быть что-то вроде date(date_add)
(MySQL) или trunc(date_add)
(Oracle) или что-то еще.
Если у вас нет таблицы календаря, то ее создание очень специфично для конкретной базы данных. Если у почти всех дат есть заказы, вы можете сделать такой трюк:
select driver.dte
from (select dte
from (select distinct cast(date_added + n.n as date) as dte
from orders
) o cross join
(select 0 as n union all select 1 as n union all select 2 as n
)
) driver left outer join
(select distinct cast(date_add as date) as date_add
from orders
) o
on driver.dte = o.date_add
where o.date_add is null
'HAVING' является партнером' GROUP BY'. Попробуйте использовать их вместе – Raptor
Сколько полей у вас? .. Я имею в виду столбцы ?? – Ahmed