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 :

[ORACLE 10G] Erreur ORA-00935


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 196
    Par défaut [ORACLE 10G] Erreur ORA-00935
    Bonjour,

    J'avais une requête SQL qui interrogeait une BDD Sybase. Suite à une migration, on est passé à Oracle 10G, et une des requête ne marche plus.
    Ce qui ne marche pas, c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT MAX(COUNT(COUNT(*))
    L'erreur oracle est 00935 : Imbrication de fonction de groupe trop profonde.
    Est-ce qu'on peut résoudre ce pb, sinon qu'elle pourrait être l'équivalent Oracle de cette requête pour que ça fonctionne ?

    Merci d'avance.

  2. #2
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Que est-ce que cette requête doit calculer ? Peux tu fournir un exemple ?

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 196
    Par défaut
    En gros, j'ai un numéro de dossier et une date (de début).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT MAX(COUNT(COUNT(*)),NUM,DATEDEB
    FROM MOUV
    WHERE NUM = 123456789
    GROUP BY NUM
    ORDER BY DATEDEB
    Si pour ce numéro j'ai 3 lignes, les résultats sont par exemple :
    3 - 123456789 - 11/11/09
    3 - 123456789 - 15/11/09
    3 - 123456789 - 19/11/09

  4. #4
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Citation Envoyé par Enthau Voir le message
    En gros, j'ai un numéro de dossier et une date (de début).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT MAX(COUNT(COUNT(*)),NUM,DATEDEB
    FROM MOUV
    WHERE NUM = 123456789
    GROUP BY NUM
    ORDER BY DATEDEB
    Si pour ce numéro j'ai 3 lignes, les résultats sont par exemple :
    3 - 123456789 - 11/11/09
    3 - 123456789 - 15/11/09
    3 - 123456789 - 19/11/09
    peut être en utilisant les fonctions analytiques
    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
     
    SQL> with data as (
      2  Select 123456789 num, to_date('11/11/09','DD/MM/YY') DATEDEB from dual union all
      3  Select 123456789 num, to_date('15/11/09','DD/MM/YY') DATEDEB from dual union all
      4  Select 123456789 num, to_date('19/11/09','DD/MM/YY') DATEDEB from dual union all
      5  Select 123456788 num, to_date('19/11/09','DD/MM/YY') DATEDEB from dual
      6  ) select num, DATEDEB, count(*) over (partition by num)
      7      From data
      8     WHERE NUM = 123456789
      9     order by datedeb
     10  /
     
           NUM DATEDEB     COUNT(*)OVER(PARTITIONBYNUM)
    ---------- ----------- ----------------------------
     123456789 11/11/2009                             3
     123456789 15/11/2009                             3
     123456789 19/11/2009                             3
     
    SQL>

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 196
    Par défaut
    Merci mnitu,
    j'ai réussi à avoir ce que je cherchai, j'ai juste fait une sous-requête dans mon select. C'est un peu moins compliqué que les fonctions analytiques.
    Merci beaucoup.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Oracle 10g] Erreur ORA-04062
    Par ToxiZz dans le forum Oracle
    Réponses: 8
    Dernier message: 13/11/2009, 10h31
  2. Réponses: 2
    Dernier message: 08/08/2008, 18h03
  3. PB Install Oracle 10g erreur ORA 00604 et 02248
    Par iks22 dans le forum Installation
    Réponses: 1
    Dernier message: 04/07/2007, 17h52
  4. [Oracle 10g] Erreur ORA-00600
    Par Pakkaï dans le forum Oracle
    Réponses: 6
    Dernier message: 21/09/2006, 15h01
  5. Réponses: 4
    Dernier message: 21/11/2005, 12h04

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