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
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Points : 2
    Points
    2
    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 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 386
    Points
    18 386
    Par défaut
    Qu'avez-vous écrit pour le moment ?

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

    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Points : 2
    Points
    2
    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
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    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 799
    Points : 34 048
    Points
    34 048
    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))))

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

    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Points : 2
    Points
    2
    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 éprouvé
    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
    Points : 965
    Points
    965
    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 : 41
    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
    Points : 5 848
    Points
    5 848
    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))
    )

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