Bonjour,
je cherche depuis un bon moment en étudiant les fonctions analytiques et en cherchant des exemples, mais je n'aboutis pas.
Sur Oracle 11g, j'ai besoin de lier deux tables sans lien (oui ça part mal), pour lister disons toutes les ventes réalisées (table ventes) entre chaque collecte d'argent (table transfert). Bien sûr rien ne lie les deux tables, et les dates de l'une ne sont pas identiques aux dates de l'autre.
Table Ventes
| id_vente1 | id_produit1 | montant_vente1 | date_vente1 |
| id_vente2 | id_produit2 | montant_vente2 | date_vente2 |
| id_vente3 | id_produit3 | montant_vente3 | date_vente3 |
...
Table Transferts
| id_transfert1 | montant_transfert1 | date_transfert1 |
| id_transfert2 | montant_transfert2 | date_transfert2 |
| id_transfert3 | montant_transfert3 | date_transfert3 |
| id_transfert4 | montant_transfert4 | date_transfert4 |
Résultat souhaité, trié dans l'ordre des dates, chaque ligne contient en plus la date du transfert suivant(!):
| date_transfert1 | date_transfert2 | montant_transfert1 | date_vente1 | id_produit1 | montant_vente1 |
| date_transfert1 | date_transfert2 | montant_transfert1 | date_vente2 | id_produit2 | montant_vente2 |
| date_transfert1 | date_transfert2 | montant_transfert1 | date_vente3 | id_produit3 | montant_vente3 |
| date_transfert1 | date_transfert2 | montant_transfert1 | date_vente4 | id_produit4 | montant_vente4 |
| date_transfert2 | date_transfert3 | montant_transfert2 | date_vente5 | id_produit5 | montant_vente5 |
| date_transfert2 | date_transfert3 | montant_transfert2 | date_vente6 | id_produit6 | montant_vente6 |
| date_transfert2 | date_transfert3 | montant_transfert2 | date_vente7 | id_produit7 | montant_vente7 |
| date_transfert3 | date_transfert4 | montant_transfert3 | date_vente8 | id_produit8 | montant_vente8 |
| date_transfert3 | date_transfert4 | montant_transfert3 | date_vente9 | id_produit9 | montant_vente9 |
etc...
(ici 4 ventes ont eu lieues entre les deux premières collectes)
A l'aide de la fonction lead, j'obtiens bien la partie gauche, mais la totalité des ventes sont répétées par groupe de transfert (de date_transfertN à date_transfertN+1, et c'est bien normal car je n'ai pas de clause reliant les transferts et les ventes).
Vers quelle technique devrais-je m'orienter pour limiter les ventes affichées selon les bornes de dates de transfert?
Merci
Partager