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 :

Requête SQL et Java


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Ingénieur de construction de réseaux
    Inscrit en
    Juillet 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur de construction de réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2011
    Messages : 1
    Par défaut Requête SQL et Java
    Bonjour
    Je suis sur un projet de gestion de scolarité en java, j'aimerais classer les élèves en fonction de leur moyenne en gérant les ex-aequo.
    La requête suivante s’exécute sans erreur dans le sgbd, mais traduite en java, il y a des erreurs au niveau de ":="
    Y a-t-il une manière d’éviter les ":=" ?
    Merci d’avance

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    --Requête d'affichage avec les rangs
    SET @rang = 1;
    SET @prec = (SELECT MAX(moyenne) FROM note);
    SELECT if( moyenne < @prec , @rang := @rang+(SELECT COUNT(moyenne) FROM note WHERE moyenne = @prec), @rang ) 
    rang, nom, moyenne, @prec := moyenne AS prec FROM note ORDER BY moyenne DESC, nom ASC;
     
     
     
     
     
     
    -- Requête de création de la bD
    -- phpMyAdmin SQL Dump
    -- version 3.5.1
    -- <a href="http://www.phpmyadmin.net" target="_blank">http://www.phpmyadmin.net</a>
    --
    -- Client: localhost
    -- Généré le: Ven 04 Juillet 2014 à 18:18
    -- Version du serveur: 5.5.24-log
    -- Version de PHP: 5.4.3
     
    SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
    SET time_zone = "+00:00";
     
     
    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8 */;
     
    --
    -- Base de données: `test`
    --
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `note`
    --
     
    CREATE TABLE IF NOT EXISTS `note` (
      `Id` int(11) NOT NULL AUTO_INCREMENT,
      `Nom` varchar(25) NOT NULL,
      `moyenne` double NOT NULL,
      PRIMARY KEY (`Id`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=10 ;
     
    --
    -- Contenu de la table `note`
    --
     
    INSERT INTO `note` (`Id`, `Nom`, `moyenne`) VALUES
    (1, 'Patouki', 15),
    (2, 'Dhad', 13),
    (3, 'Doumga', 11),
    (4, 'Sadjo', 14),
    (5, 'Dili', 14),
    (6, 'Ezaïe', 17),
    (7, 'Popo', 10),
    (8, 'Edouard', 7),
    (9, 'Adamou', 15);
     
    /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
    /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
    /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 139
    Par défaut
    La notation := à l'intérieur d'une requête n'existe pas dans le langage SQL normalisé, pas plus que la fonction if().
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 306
    Par défaut
    Bonjour,

    := n'est pas en java non plus. D'ailleurs, je ne vois pas de traces de java.

    Pour avoir les élèves classés par moyenne, j'aurais bêtement fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT nom, MOY(note) AS moyenne FROM table_eleves GROUP BY nom ORDER BY moyenne DESC;
    Que signifie "gérer les ex-aequo"?

Discussions similaires

  1. Requête SQL avec JAVA
    Par bdptaki dans le forum Débuter avec Java
    Réponses: 10
    Dernier message: 27/02/2011, 15h52
  2. Problème d'exécution d'une requête sql sous java
    Par leshafid dans le forum Requêtes
    Réponses: 1
    Dernier message: 18/08/2010, 10h15
  3. Problème d'exécution d'une requête sql sous java
    Par leshafid dans le forum JDBC
    Réponses: 1
    Dernier message: 18/08/2010, 09h26
  4. Constructeur de requête sql en java
    Par vinzzzz dans le forum Persistance des données
    Réponses: 3
    Dernier message: 08/09/2009, 17h18
  5. Réponses: 8
    Dernier message: 11/08/2006, 10h30

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