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 :

Requête complexe


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Juin 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2012
    Messages : 3
    Par défaut Requête complexe
    Bonjour, j'ai un sql qui me permet de récupérer le nb de données dont la date de révision est la plus proche d'une date encodée.

    Que puis-je faire si j'obtiens 2 données du même interval et qu'on me demande de prendre la date de révision < à la date encodée dans ce cas là ???

    Voici mon SQL, que dois-je y rajouter pour obtenir le trt désiré ???
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    select count (*)
       from CPA_SUIVI_APPEL_9_AIDANT_PROCH,CPA_SUIVI_APPEL_9
       where CPA_SUIVI_APPEL_9_AIDANT_PROCH.SA9AP_SA9 = CPA_SUIVI_APPEL_9                  .SA9_ID and
                CPA_SUIVI_APPEL_9.SA9_REVISION in (
    	select sa111213_id
    	  from   cpa_suivi_appel_11_12_13, cpa_appel
    	  where sa111213_statut = '1'
    	     and sa111213_appel = app_id
    	     and app_beneficiaire_pers_phys = personne_physique.pp_id
    	     and app_statut = '1'
    	  group by sa111213_id,sa111213_revision_date
    	  having min(abs(to_date(to_char    (:ad_date_deb,'dd/mm/yyyy'),'dd/mm/yyyy') - to_date(to_char(sa111213_revision_date,'dd/mm/yyyy'),'dd/mm/yyyy'))) = 
    		(select min(abs(to_date(to_char(:ad_date_deb,'dd/mm/yyyy'),'dd/mm/yyyy') - to_date(to_char(sa111213_revision_date,'dd/mm/yyyy'),'dd/mm/yyyy')))
    		     from 	cpa_suivi_appel_11_12_13,
    			cpa_appel
    		     where sa111213_statut = '1'
    			and sa111213_appel = app_id
    			and app_beneficiaire_pers_phys =  cig_personne_physique.pp_id
     		             and app_statut = '1'))
    J'ai pas réussi à mieux formatter mon SQL, désolée.
    J'espère que ma question est claire.

  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
    Il y a quelques soucis dans votre requête :
    • les tables ne sont ni aliasées ni explicitement définies => je ne sais pas quelle colonne appartient à qui
    • vous faites référence à "personne_physique" et "cig_personne_physique", que je ne vois pourtant jamais dans aucun FROM
    • il y a des imbrications qui sont peut-être inutiles


    Je pense avoir compris votre problème mais le mieux à faire c'est de réécrire la requête.
    Il faudrait la définition de toutes les tables / colonnes qui apparaissent dans celle-ci, les relations entre les tables ainsi que la version d'Oracle que vous utilisez.
    Et également un petit jeu de données (une dizaine de lignes) représentatif de votre problème.

  3. #3
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Juin 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2012
    Messages : 3
    Par défaut
    en fait ce que j'ai mis est un morceau de mon sql.
    Il ne concerne qu'une donnée à récupérer parmis d'autres.
    Je n'ai pas de données présentant mon cas de conscience, c'est juste que je me suis poser la question : et si dans ma table cpa_suivi_appel_11_12_13, j'ai 2 records encodé à exactement le même interval de la date choisie par l'utilisateur.

    Comment faire pour que SQL me sélectionne le record dont la date d'encodage est inférieure à la date choisie par l'utilisateur.

    Voulez-vous vraiment tout le sql ????

    Je travail sous PB9.0 avec Oracle 9.0.1

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Par défaut
    Ce sont les scripts de création des tables et un exemple de données qui sont attendus, pas votre requête.

  5. #5
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Juin 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2012
    Messages : 3
    Par défaut
    désolée, je n'ai pas ces scripts de génération de tables, je travail sur des tables existantes depuis bien longtemps .....

  6. #6
    Membre Expert Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Par défaut
    Il suffit de lancer la commande :

    C'est surtout la description des tables qui intéresse.

Discussions similaires

  1. [SQL] Requête complexe avec appel multiple à la même table
    Par Julien Dufour dans le forum Langage SQL
    Réponses: 9
    Dernier message: 14/04/2005, 14h12
  2. Requête complexe
    Par Yali dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/01/2005, 09h19
  3. 3 tables avec requête complexe
    Par yamino dans le forum Langage SQL
    Réponses: 6
    Dernier message: 25/03/2004, 19h50
  4. Encore une requête complexe sur plusieurs tables
    Par DenPro dans le forum Langage SQL
    Réponses: 5
    Dernier message: 09/12/2003, 19h05
  5. Requête complexe sur plusieurs table
    Par DenPro dans le forum Langage SQL
    Réponses: 13
    Dernier message: 25/11/2003, 17h50

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