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

WinDev Discussion :

rendre cette requete plus simple [WD17]


Sujet :

WinDev

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juillet 2012
    Messages : 34
    Points : 37
    Points
    37
    Par défaut rendre cette requete plus simple
    Bonjour,

    j'ai cette requete
    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
    SELECT 
    	etudiants.lib_etudiants AS lib_etudiants,	
    	depense.date AS date_dep,	
    	SUM(depense.nourriture) AS dep_nou
    FROM 
    	etudiants,	
    	depense
    WHERE 
    		etudiants.IDetudiants	=	depense.IDetudiants
    	AND
    	(
    		depense.date BETWEEN {Param1} AND {Param2}
    	)
    GROUP BY 
    	etudiants.lib_etudiants,	
    	depense.date
    à cause des principes du GROUP BY
    j'ai ça
    Franck 20/12/2012 500F
    Franck 19/12/2012 6000F

    je voudrais plutôt obtenir ceci
    Franck 6500F
    j'ai donc fait ceci

    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
    SELECT lib_etudiants FROM(SELECT 
    	etudiants.lib_etudiants AS lib_etudiants,	
    	depense.date AS date_dep,	
    	SUM(depense.nourriture) AS dep_nou
    FROM 
    	etudiants,	
    	depense
    WHERE 
    		etudiants.IDetudiants	=	depense.IDetudiants
    	AND
    	(
    		depense.date BETWEEN {Param1} AND {Param2}
    	)
    GROUP BY 
    	etudiants.lib_etudiants,	
    	depense.date)
    GROUP BY lib_etudiants
    Mais je voudrais une autre methode sans requête imbriquée
    Merci d'avance

  2. #2
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2009
    Messages : 178
    Points : 416
    Points
    416
    Par défaut
    Bonjour,

    En supprimant la date vous devriez obtenir le résultat souhaité :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    SELECT 
    	etudiants.lib_etudiants AS lib_etudiants,	
    	SUM(depense.nourriture) AS dep_nou
    FROM 
    	etudiants,	
    	depense
    WHERE 
    		etudiants.IDetudiants	=	depense.IDetudiants
    	AND
    	(
    		depense.date BETWEEN {Param1} AND {Param2}
    	)
    GROUP BY 
    	etudiants.lib_etudiants

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juillet 2012
    Messages : 34
    Points : 37
    Points
    37
    Par défaut
    oups
    je prenais la date pour un élément obligatoire du SELECT vu qu'elle était une condition



    Merci

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 153
    Points
    2 153
    Par défaut
    [MODE RELOU]
    Bonjour,

    Vous pourriez aussi en profiter pour l'écrire en SQL2 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT 
    	etudiants.lib_etudiants AS lib_etudiants,	
    	SUM(depense.nourriture) AS dep_nou
    FROM 
    	etudiants INNER JOIN depense ON etudiants.IDetudiants	=	depense.IDetudiants
    WHERE  
    		depense.date BETWEEN {Param1} AND {Param2}
    GROUP BY 
    	etudiants.lib_etudiants
    C'est tellement plus lisible ! et surtout c'est la norme depuis 1992....

    [/MODE RELOU]

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

Discussions similaires

  1. Requete plus simple
    Par how_much dans le forum Langage SQL
    Réponses: 5
    Dernier message: 16/10/2009, 17h24
  2. J'ai du mal avec cette requete 'simple'
    Par NeutronDance dans le forum Requêtes
    Réponses: 10
    Dernier message: 15/10/2009, 15h44
  3. requete plus simple
    Par eric232 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 28/04/2009, 16h04
  4. Réponses: 6
    Dernier message: 09/11/2007, 10h38
  5. Rendre les requetes plus rapide
    Par radhwene dans le forum Débuter
    Réponses: 6
    Dernier message: 06/06/2007, 18h10

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