Ürünlerin listesini, ayrıntılarıyla birlikte (birkaç ayrıntıda ürünlere bölünmüş bir ana ürünümüz var) ve fiyat değişikliklerinin geçmişini sakladığımız bir tabloyu bulmak için bir sorgu yaptım. bu ürün.Oracle dinamik bölüme katılın
benim oracle veritabanı üzerinde iyi çalışıyor aşağıdaki sorguyu var:
SELECT ref, size, is_promotion, original_price, histo_npx as "current_price" , histo_apx as "old_price"
from product
left join product_details on product_ref = ref
left join (select product_ref, histo_npx, histo_dex, histo_apx,
rank() over (partition by price.product_ref order by histo_dex DESC) modif_rank
from price
where histo_npx is not null
and price.product_ref = 'MY_REF'
and price.product_size = 'MY_SIZE'
order by price.histo_dex, price.product_ref) on product_ref = ref
where (modif_rank = 1 or modif_rank is null)
and ref = 'MY_REF'
and size = 'MY_SIZE'
Ama MY_REF ve MY_SIZE değerlerini zorlamadan dinamik olarak yapmak gerekir. Alt sorgumda ve sorguda nerede kaldıracağım, veritabanımın en eski ürünü için tüm geçmişe sahip olduğumdan elbette ki iyi değil, bu yüzden, global sorgumun and ref = 'MY_REF' and size = 'MY_SIZE'
'unu kaldırırsam alt sorgumu kısıtlamam gerekiyor.
Herhangi bir fikrin var mı? Eğer dış sorguda
yılında ref = 'MY_REF' and size = 'MY_SIZE'
filtreleri Böyle sorgu kullanabilir nerede görünüm veya alt sorgu içine sorgu koymak ve dinamik eklemek istiyorsanız
Lanet olsun neredeyse iyiydim, bölümdeki alanı unuttum ... iyi iş! –