Стандартными методами - никак. В этой задаче нет поля Дата, поэтому добавить функцию подсчета уникальных дат продаж не получится. Вот если бы задача была на основе модели "Реализация в закупочных ценах по датам", то было бы просто.
Но, как всегда, есть выход, нужно только прочитать инструкцию к бизнес анализу, а именно, ту её часть, которая называется "для продвинутых пользователей". Найти несложно в хранилище,
https://storage.olegon.ru/supermag/С...вателей.doc.7z
Для облегчения функцию, которая подсчитывает число дней продажи в выбранном периоде я написал:
SQL код:
create or replace function RAD_Get_Card_Sale_Count_Dates(ADateFrom in date, ADateTo in date, ALocID in supermag.smstorelocations.id%type,
AArticle in supermag.smcard.article%type) return integer
is
res integer;
error_param_value exception;
begin
SELECT round((COUNT(DISTINCT D.SaleDate)), 0) into res
FROM SMStoreLocations LOC
,SVARealCostPriceOpenedPeriod D
,SVCardName CRD
WHERE D.Article = CRD.Article
AND D.StoreLoc = LOC.ID
AND CRD.article = AArticle
AND D.SaleDate BETWEEN ADateFrom AND ADateTo
AND (nvl(D.SaleQty, 0) != 0)
AND LOC.ID = ALocID;
return(res);
exception
when no_data_found then
return(null);
when others then
raise;
end RAD_Get_Card_Sale_Count_Dates;
/
commit;
Всё остальное довольно подробно разжевано в документации.