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 :

AIDE ORACLE SQL


Sujet :

SQL Oracle

Vue hybride

gwadakillah AIDE ORACLE SQL 24/09/2007, 18h04
plaineR Peux-tu nous donner également... 25/09/2007, 09h31
gwadakillah Je veux obtenir par exemple... 25/09/2007, 13h02
McM Par données, on entend des... 25/09/2007, 13h41
McM -- MDT initiaux (sans... 25/09/2007, 13h48
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté Avatar de gwadakillah
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2005
    Messages : 235
    Par défaut AIDE ORACLE SQL
    Bonjour, avis aux experts oracle.
    Je n'arrive pas à trouver le résultat qu'il me faut et me demande vraiment si cela est possible.
    Je vous mets une partie de la structure de la table à votre disposition.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    CREATE TABLE MDT
    (
      MDTID     INTEGER  NOT NULL,      //Identifiant du mandat 
      PAYCOD     CHAR(2 BYTE),                      //Code du pays
      MDTIDINI      INTEGER,                    //Identifiant du mandat    initial    
      MDTDATSIG     DATE, //Date de signature 
      MDTDATEFF     DATE, //Date d'effet 
      MDTDATECH     DATE, //Date d'echeance
      MDTDATFIN     DATE, //Date de fin 
      MDTDATRES     DATE, //Date de resiliation
      MDTDATREA     DATE //Date de realisation
    )
    Maintenant, je dois récupérer le nombre de mandat dont la date de fin , la date de réalisation et la date de résiliation du dernier document rattaché au mandat
    est égale a un mois généré qu'on appellera pPeriode ou nulle.

    Un mandat a le champ MDTIDINI nulle quand celui-ci est un mandat initial et quand le champ MDTIDINI n'est pas nulle,
    cela veut dire que ce mandat est un mandat de renouvellement (en gros une prolongation de mandats)
    Donc en résumé, quand mon mandat est initial je dois le récupérer et quand mon mandat a des avenants(des renouvellements) je dois récupérer le dernier document du mandat,c'est a dire le MDTID le plus elevé avec le MDTDATSIG le plus élevé.

    Je me prends la tete dessus depuis 13h et desespère.
    Si vous pouviez m'aider, ça serait vraiment sympa.
    Si toutefois, vous n'avez pas compris, je réexpliquerais ce qu'il faut.

  2. #2
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Peux-tu nous donner également un exemple de données et un exemple de ce que tu veux obtenir, STP ?

  3. #3
    Membre expérimenté Avatar de gwadakillah
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2005
    Messages : 235
    Par défaut
    Je veux obtenir par exemple le nombre de mandat dont la date de fin , la date de réalisation et la date de résiliation est égale au mois généré ou nulle.
    La compléxité vient surtout du fait qu'il y a des mandats initiaux et des mandats de renouvellement.
    Dans le cas ou je n'ai que des mandats initiaux ( MDTIDINI IS NULL ) , il n'y a pas de problème, je renvoie les mandats initiaux mais dans le cas où j'ai des mandats de renouvellement ( MDTIDINI IS NOT NULL ) , je dois renvoyer le dernier des mandats compris dans la période sans renvoyer le mandat initial.
    Le champ MDTID est la clé primaire de la table mandat.
    Le champ MDTIDINI est un champ permettant de lier le mandat initial à ses avenants.

  4. #4
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Par données, on entend des chiffres : un exemple concret des lignes de ta table et ce que tu veux obtenir comme résultat.

  5. #5
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    -- MDT initiaux (sans renouvellement) 
    SELECT mdtid, paycod, mdtidini, mdtdatsig, mdtdatfin, mdtdatrea
    FROM MDT m1
    WHERE NOT EXISTS (SELECT 1 FROM MDT m2 WHERE m2.mdtidini = m1.mdtid)
    UNION ALL
    -- MDT renouvellés
    SELECT mdtid, paycod, mdtidini, mdtdatsig, mdtdatfin, mdtdatrea
    FROM MDT m1
    WHERE mdtidini IS NOT NULL
    AND mdtid = (SELECT MAX(m2.mdtid) 
    	FROM MDT m2
    	WHERE m2.mdtidini = m1.mdtini
    	)

  6. #6
    Membre expérimenté Avatar de gwadakillah
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2005
    Messages : 235
    Par défaut
    ben c un count que je veux obtenir donc je ne vois pas ce que je peux vous donner comme données...et le type de données est précisé donc vous savez a quel type de données s'attendre. :/
    MCM ta requete me récupère tous les mandats existants.

Discussions similaires

  1. [8] Besoin d'aide urgent SQL oracle
    Par fullogique dans le forum SQL
    Réponses: 2
    Dernier message: 11/03/2014, 17h02
  2. aide de décision(oracle/sql server)
    Par hadil dans le forum Débuter
    Réponses: 5
    Dernier message: 03/02/2009, 08h59
  3. [oracle 10g] aide connection sql
    Par isidore dans le forum Oracle
    Réponses: 8
    Dernier message: 15/02/2006, 11h11
  4. Connexion SGBD Oracle-SQL langage C/C++
    Par K2004 dans le forum Interfaces de programmation
    Réponses: 4
    Dernier message: 10/02/2004, 19h01
  5. aide PL/SQL syntaxes [debutant] [mauvaise doc]
    Par sdeb dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 19/01/2004, 12h59

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