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

Langage SQL Discussion :

Faire la différence de deux MAX


Sujet :

Langage SQL

  1. #1
    Membre confirmé Avatar de _Snoopy
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Septembre 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2010
    Messages : 313
    Points : 467
    Points
    467
    Par défaut Faire la différence de deux MAX
    Bonjour à tous,

    Je galère un peu sur une requête qui, pourtant, parait relativement simple...

    J'ai deux tables différentes (dans un même schéma) qui contiennent chacune une colonne log_id (valeur numérique).
    L'idée de base est de soustraire les deux valeurs max pour valider qu'on passe bien d'une table à l'autre et que l'écart entre les deux n'est pas trop important.

    L'idée de base :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select (max(at_logid) - (select max(at_logid) from audittrail.at_log4br)) from audittrail.at_log;
    Mais ça me retourne :

    ORA-00937: la fonction de groupe ne porte pas sur un groupe simple
    00937. 00000 - "not a single-group group function"

    J'avoue que je ne comprends pas trop pourquoi.
    Si quelqu'un a une idée, je suis preneur !

    Merci d'avance !

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 243
    Points : 12 874
    Points
    12 874
    Par défaut
    Bonjour,
    Peut-être avec une sous-requête:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    select max(nbr) - min(nbr)
    from
    (
    select max(at_logid) as nbr from audittrail.at_log4br
    union
    select max(at_logid) from audittrail.at_log
    )

    Tatayo

  3. #3
    Membre confirmé Avatar de _Snoopy
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Septembre 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2010
    Messages : 313
    Points : 467
    Points
    467
    Par défaut
    Hello !

    Merci pour ton aide, ça semble fonctionner effectivement.
    Par contre, si quelqu'un a une idée concernant le pourquoi de l'erreur ci-dessus, je suis preneur tout de même pour comprendre.

    Merci en tout cas !

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    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 453
    Points : 18 388
    Points
    18 388
    Par défaut
    Plutôt comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select coalesce((select max(at_logid) from audittrail.at_log4br), 0)
         - coalesce((select max(at_logid) from audittrail.at_log)   , 0) as diff
      from dual;

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 18/06/2016, 01h30
  2. Requete pour faire une différence entre deux dates
    Par PkoiTan2N dans le forum SQL
    Réponses: 2
    Dernier message: 28/04/2011, 13h14
  3. Comment faire la différence de deux images
    Par souza dans le forum Images
    Réponses: 2
    Dernier message: 09/01/2008, 15h26
  4. faire une différence entre deux tables
    Par geay dans le forum Langage SQL
    Réponses: 1
    Dernier message: 04/09/2006, 15h33
  5. Réponses: 7
    Dernier message: 05/07/2006, 16h29

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