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

Requêtes MySQL Discussion :

probleme avec une requete de group by avec having


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 69
    Points : 59
    Points
    59
    Par défaut probleme avec une requete de group by avec having
    bonsoir
    j'ai besoin de votre aide svp
    j'ai une table match qui comme structure:

    idMatch int
    idComp int
    compositionPrincipale varchar
    heure timestamp on update CURRENT_TIMESTAMP
    stade varchar
    idEquipe1 int
    idEquipe2 int

    je veux faire une requete qui me retourne (idMatch) des derniers match c a d ceux dont la date est inferieure à date system et cela pour chaque competition (idComp)

    j'ai fait la requete suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT idMatch 
    FROM match 
    GROUP BY idComp 
    HAVING MAX(heure) < CURRENT_TIMESTAMP
    mais en vain, si qqn pourra m'aider je serez reconnaissante

    voici le script de creation de la table match et de son remplissage pourque vous puissiez tester et voir le resultat

    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
    20
    21
    22
    23
    24
    --
    -- Structure de la table `match`
    --
     
    CREATE TABLE IF NOT EXISTS `match` (
      `idMatch` int(10) NOT NULL AUTO_INCREMENT,
      `idComp` int(11) NOT NULL,
      `compositionPrincipale` varchar(255) NOT NULL,
      `heure` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
      `stade` varchar(255) NOT NULL,
      `idEquipe1` int(11) NOT NULL,
      `idEquipe2` int(11) NOT NULL,
      PRIMARY KEY (`idMatch`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
     
    --
    -- Contenu de la table `match`
    --
     
    INSERT INTO `match` (`idMatch`, `idComp`, `compositionPrincipale`, `heure`, `stade`, `idEquipe1`, `idEquipe2`) VALUES
    (1, 2, '445', '2012-04-01 15:10:24', 'du nord', 1, 2),
    (2, 1, '551', '2012-06-05 12:37:51', 'du nord', 2, 1),
    (3, 1, '445', '2012-04-02 15:10:09', 'du nord', 3, 1),
    (4, 1, '551', '2012-04-04 12:51:44', 'du nord', 1, 4);

  2. #2
    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 : 60
    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 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Pas besoin de GROUP BY ; un WHERE suffit !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT idMatch 
    FROM match 
    WHERE heure < CURRENT_TIMESTAMP
    Nota : CURRENT_TIMESTAMP est très précis et retournera probablement tous les matches car le temps que soit exécuté la requête, on sera forcément plus tard que l'heure de l'insertion du dernier match.

    Si tu veux tous les matches jusqu'à hier, utilise CURRENT_DATE dans la requête.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    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 !

  3. #3
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Saluton,
    @Cinéphil : même si le besoin est maladroitement exprimé, il me semble que ce que souhaite boumacmilan, c'est l'idMatch de la plus récente rencontre de chaque compétition, plus récente avant le jour système.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  4. #4
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 69
    Points : 59
    Points
    59
    Par défaut
    merci CinePhil pour la reponse, mais peut etre je ne me suis ps bien exprimé, c'est comme a dit Maljuna Kris, je veux le plus recent match de chaque competition, le plus recent avant la date system

Discussions similaires

  1. Changer le nom d'une table sur SQL server avec une requete
    Par Oluha dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 01/02/2014, 23h35
  2. Réponses: 0
    Dernier message: 23/06/2011, 11h28
  3. Réponses: 4
    Dernier message: 23/10/2006, 09h09
  4. probleme avec une requete full text
    Par maxxou dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/03/2005, 17h20
  5. au secour probleme avec une requete...
    Par soufiane59 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 26/09/2003, 10h28

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