IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

[11g] Reconstituer un chainage de dates et de valeurs


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de bstevy
    Homme Profil pro
    Solutions Architect
    Inscrit en
    Mai 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Japon

    Informations professionnelles :
    Activité : Solutions Architect
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 552
    Par défaut [11g] Reconstituer un chainage de dates et de valeurs
    Bonjour,


    J'aurais besoin d'aide pour reconstituer un chainage sur une table assez simple pour le moment, mais qui pourrait devenir un peu plus embetante par la suite.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    create table matable
    (
    ATD_FLOOR_PREMIUM int,
    DISCOUNT int,
    ATD_VALID_SINCE_DATE DATE ,
    ATD_VALID_UNTIL_DATE DATE
    )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    insert into matable values (1		,2500	,DATE '2002-11-22', DATE '2003-03-31');
    insert into matable values (1		,2500	,DATE '2003-04-01', DATE '2004-08-28');
    insert into matable values (1		,2500	,DATE '2004-08-29', DATE '2999-12-31');
    insert into matable values (30000	,3500	,DATE '2005-09-30', DATE '2999-12-31');
    insert into matable values (50000	,4500	,DATE '2007-01-10', DATE '2999-12-31');
    insert into matable values (70000	,5500	,DATE '2012-04-01', DATE '2999-12-31');
    insert into matable values (80000	,5500	,DATE '2010-06-15', DATE '2012-03-31');
    insert into matable values (80000	,6500	,DATE '2012-04-01', DATE '2999-12-31');
    insert into matable values (100000	,8500	,DATE '2012-04-01', DATE '2999-12-31');
    insert into matable values (120000	,10000	,DATE '2012-04-01', DATE '2999-12-31');
     
    commit;

    Pour vous la décrire simplement, c'est une table qui me permet de calculer un discount sur un prix de base.
    La première colonne est donc la valeur "palié", si mon prix est compris entre cette valeur et la valeur suivante, alors je prends le discount (deuxieme colonne), le tout sur une période donnée.

    Ce que j'aurais voulu, c'est reconstruire la table complete avec la valeur min et la valeur max, le tout, sur chaque période ou c'est suceptible d'etre different.
    Un truc dans ce genre :

    ATD_FLOOR_PREMIUM ATD_ROOF_PREMIUM DISCOUNT ATD_VALID_SINCE_DATE ATD_VALID_UNTIL_DATE
    1 2500 2002/11/22 2003/03/31
    1 2500 2003/04/01 2004/08/28
    1 2500 2004/08/29 2005/09/29
    1 3000 2500 2005/09/30 2999/12/31
    30000 3500 2005/09/30 2006/12/31
    30000 5000 3500 2007/01/10 2999/12/31
    50000 4500 2007/01/10 2010/06/15
    50000 80000 4500 2010/06/15 2012/03/31
    50000 70000 4500 2012/04/01 2999/12/31
    70000 80000 5500 2012/04/01 2999/12/31
    80000 5500 2010/06/15 2012/03/31
    80000 100000 6500 2012/04/01 2999/12/31
    100000 120000 8500 2012/04/01 2999/12/31
    120000 10000 2012/04/01 2999/12/31


    Est ce que vous pourriez m'aider à faire cela svp ?

    Merci d'avance.


    Steven

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    C'est faisable, mais c'est complexe et pas forcément performant.

    Si vous pouvez changer la structure de la table, faites-le maintenant en rajoutant la colonne ATD_ROOF_PREMIUM.

  3. #3
    Membre émérite Avatar de bstevy
    Homme Profil pro
    Solutions Architect
    Inscrit en
    Mai 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Japon

    Informations professionnelles :
    Activité : Solutions Architect
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 552
    Par défaut
    Si seuleument je pouvais

    Quant aux perf, la table que je vous ai donnée est la table entière actuellement.
    Dans l'absolu, c'est une table de référence, donc elle n'ira pas beaucoup plus loin en terme de nombre de lignes.
    Mais si c'est trop compliqué, c'est pas grave, je me debrouille autrement justement parce qu'il n'y a pas beaucoup de ligne.

Discussions similaires

  1. Réponses: 5
    Dernier message: 25/11/2007, 20h32
  2. Creer une date avec des valeurs prédéfinies
    Par baedal dans le forum VB.NET
    Réponses: 4
    Dernier message: 22/05/2007, 11h58
  3. [VBA]pourquoi la fonction Date() revoie une valeur nulle
    Par modus57 dans le forum VBA Access
    Réponses: 2
    Dernier message: 29/04/2007, 14h27
  4. Date courante comme valeur par défaut
    Par joeyinbox dans le forum Débuter
    Réponses: 4
    Dernier message: 27/04/2006, 17h11
  5. Réponses: 3
    Dernier message: 15/02/2006, 18h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo