同じ構造の2つの異なるテーブルに週単位と月単位の集計を格納するために、正規化されたスキーマを使用することをお勧めします。私はあなたがしようとしているクエリの種類はわかりませんが、これで検索が簡単になると思います(正しい方法で済ませれば!!!)。
おそらく、このサンプルのようなもの
product_prices (
prod_code,
price,
date_price_begin
);
sales (
prod_code,
customer_code,
sale_date
);
<aggregate-week>
select trunc(sale_date,'w') as week,
prod_code,
customer_code,
sum(price) keep (dense_rank first order by date_price_start) as price
from sales
natural join product_prices
where sale_date > date_from
group by trunc(sale_date,'iw'),
prod_code,
customer_code
/
<aggregate-month>
select trunc(sale_date,'m') as month,
prod_code,
customer_code,
sum(price) keep (dense_rank first order by date_price_start) as price
from sales
natural join product_prices
where sale_date > date_from
group by trunc(sale_date,'m'),
prod_code,
customer_code
/
おかげで、日付計算についての良い点 - あまりにも私の最初の懸念でした。残念ながら、私はエントリを作成するときに正しい日付を入れなければならないので、私はそれを避けることができません - 私たちのORMフレームワークのためにTRUNC(@ date_of_interest、 'IW')を単に使うことはできません。 –