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

Designer Discussion :

Plusieurs Select Max() dans une seule table


Sujet :

Designer

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Par défaut Plusieurs Select Max() dans une seule table
    Bonjour,

    Je cherche a faire plusieurs select max() dans une seule table. Un select max sur un champs date et un select max sur un champs numéro d'evenement le tout avec une invite sur le champs date.

    C'est pour un filtre dans un univers BO version XI

    Merci beaucoup.

  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
    Qu'avez-vous écrit pour le moment ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    (dbo.PER1.PMATR = dbo.SADID.PMATR
    AND dbo.SADID.MDATE = ( Select MAX (dbo.SADID.MDATE)
    FROM dbo. SADID
    WHERE dbo.PER1.PMATR = dbo.SADID.PMATR
    AND dbo.SADID.MDATE <= (@Promp ('Date de recherche','D',,MONO,FREE))))
    et j'aimerai inclure un Select Max du champ NUMEV de la table SADID dans ce select max.

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    Il y a un mélange de SQL et d'autre chose dans votre code !

    Il est tout à fait possible de mettre deux MAX dans le même SELECT. A vous d'adapter le code ensuite car bien sûr cette requête va retourner deux valeurs.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Select MAX (dbo.SADID.MDATE), MAX(dbo.SADID.NUMEV)
    FROM dbo. SADID
    WHERE dbo.PER1.PMATR = dbo.SADID.PMATR
    AND dbo.SADID.MDATE <= (@Promp ('Date de recherche','D',,MONO,FREE))))
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Par défaut
    C'est du SQL dans une requête BO qui devrait être un filtre dans un univers.

    Le problème est lorsque j'enlève le "dbo.SADID.MDATE=" avant le Select Max, il me fait une erreur sql.
    A chaque fois que je fais un select max pour un champs il faut que je le précise la table et le champs juste avant le select max.
    C'est pour ca que je ne peux pas en mettre plusieurs d'affiler ou du moins que je ne connais pas la solution...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    (dbo.PER1.PMATR = dbo.SADID.PMATR
    AND dbo.SADID.MDATE = ( SELECT MAX (dbo.SADID.MDATE)
    FROM dbo. SADID
    WHERE dbo.PER1.PMATR = dbo.SADID.PMATR
    AND dbo.SADID.MDATE <= (@Prompt ('Date de recherche','D',,MONO,FREE))))

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Par défaut
    Bonjour,

    Ca ressemble à un morceau de clause WHERE.
    Essayez ceci, s'il accepte cette syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    (dbo.PER1.PMATR = dbo.SADID.PMATR
    AND (dbo.SADID.MDATE,dbo.SADID.NUMEV) = ( SELECT MAX (dbo.SADID.MDATE),MAX(dbo.SADID.NUMEV)
    FROM dbo. SADID
    WHERE dbo.PER1.PMATR = dbo.SADID.PMATR
    AND dbo.SADID.MDATE <= (@Prompt ('Date de recherche','D',,MONO,FREE))))

  7. #7
    Rédacteur
    Avatar de TomDuBouchon
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2009
    Messages
    3 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 343
    Par défaut
    Tu peux essayer ça sinon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    (dbo.PER1.PMATR = dbo.SADID.PMATR
    AND dbo.SADID.MDATE = (
    SELECT MAX (dbo.SADID.MDATE)
    FROM dbo. SADID
    WHERE dbo.PER1.PMATR = dbo.SADID.PMATR
    AND dbo.SADID.MDATE <= @Prompt ('Date de recherche','D',,MONO,FREE))
    AND dbo.SADID.NUMEV = ( 
    SELECT MAX (dbo.SADID.NUMEV)
    FROM dbo. SADID
    WHERE dbo.PER1.PMATR = dbo.SADID.PMATR
    AND dbo.SADID.MDATE <= @Prompt ('Date de recherche','D',,MONO,FREE))
    )
    Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches.
    Un message vous a aidé ? Votez en cliquant sur
    Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/03/2014, 17h32
  2. Réponses: 7
    Dernier message: 15/01/2014, 18h45
  3. Réponses: 7
    Dernier message: 12/06/2008, 13h26
  4. Réponses: 5
    Dernier message: 21/06/2007, 08h49
  5. plusieurs tables dans une seule table
    Par scully2501 dans le forum Access
    Réponses: 1
    Dernier message: 10/10/2005, 09h19

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