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 :

Requêtes : rubrique calculée


Sujet :

WinDev

  1. #1
    Membre averti Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    mars 2007
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : mars 2007
    Messages : 546
    Points : 442
    Points
    442
    Par défaut Requêtes : rubrique calculée
    Bonsoir ,

    j'ai une petite prise de tête avec un truc, qui me semblait simple ... mais ...

    Dans une requête, j'ai 1 rubrique somme => SUM(locations) => la_somme_location, qui me calcule la somme des locations d'un objet et une rubrique prix_achat.

    Je voudrais reprendre cette rubrique dans une rubrique calculée pour déduire cette somme des locations au prix de l'objet.

    ça devait donner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    => clic sur (fx)  rubrique calculée :
     Nom de la rubrique [ prix_moins_location ]
    Code SQL de l'expression : 
    [ prix_achat - la_somme_location]
    et bien non ! impossible de reprendre la rubrique calculée la_somme_locations dans ma fenêtre de création des rubriques calculées

    Y'a un truc ou c'est impossible ?


    Merci d'avance


    Olivier

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    mars 2003
    Messages
    541
    Détails du profil
    Informations personnelles :
    Localisation : Laos

    Informations forums :
    Inscription : mars 2003
    Messages : 541
    Points : 1 154
    Points
    1 154
    Par défaut
    Je ne me sers jamais de l'éditeur de requête SQL, mais de manière général, je dirais que l'alias n'est pas connu au niveau du SELECT.

    Cela veut dire qu'il faut reprendre la syntaxe SQL et non l'alias :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT .....
    SUM(PRIX_LOCATION) AS la_somme_location,
    PRIX_ACHAT - SUM(PRIX_LOCATION),.....
     
    FROM....
    WHERE....
    GROUP BY PRIX_LOCATION, PRIX_ACHAT,...

  3. #3
    Membre averti Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    mars 2007
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : mars 2007
    Messages : 546
    Points : 442
    Points
    442
    Par défaut
    Hello,

    j'ai essayé avec ce petit code :

    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
     
    rs est une Source de Données
    sSQl est une chaîne
     
    sSQl = [
    SELECT 
    Jeux.Numero_jeu AS Numero_jeu,	
    Jeux.Nom_jeu AS Nom_jeu,	
    SUM(Locations.Prix_location) AS la_somme_Prix_location,	
    SUM(Locations.Amende) AS la_somme_Amende,
    SUM(Locations.Prix_location)  + 1  AS test
    FROM 
    Jeux,	
    Locations
    WHERE 
    Locations.Numero_jeu	=	Jeux.Numero_jeu
     
    GROUP BY 
    Jeux.Numero_jeu,	
    Jeux.Nom_jeu
    ]
     
    SI PAS HExécuteRequêteSQL(rs,hRequêteDéfaut,sSQl) ALORS
    	Erreur(HErreurInfo())
    SINON
    	POUR TOUT rs 
    		Trace (rs.Numero_jeu + " ==> " + rs.test)
    	FIN
    FIN
    avec la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SUM(Locations.Prix_location)  + 1  AS test
    si je supprime le "+1" tout fonctionne, avec le +1 j'ai le message :


    Erreur dans le code SQL de la requête <rs>. Initialisation de la requête impossible.
    Les fonctions agrégats (COUNT, AVG, SUM, MIN, MAX) ne sont pas autorisées en dehors des clauses SELECT ou HAVING

    Dans l'éditeur de requêtes en mode SQL, j'ai le même message


    Amicalement

    Olivier

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : mars 2005
    Messages : 1 683
    Points : 2 575
    Points
    2 575
    Par défaut
    Utilisez un vrai SGBD

  5. #5
    Membre averti Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    mars 2007
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : mars 2007
    Messages : 546
    Points : 442
    Points
    442
    Par défaut
    Hello ..

    Utilisez un vrai SGBD
    c'est vrai que je ne vais pas changer de SGDB pour une fonction

    Mais c'est vrai que c'est frustrant, il n'y a pas moyen de contourner cette limitation ?


    Olivier

  6. #6
    Membre averti Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    mars 2007
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : mars 2007
    Messages : 546
    Points : 442
    Points
    442
    Par défaut
    Un p'tit up ...

    Merci d'avance

    Olivier

  7. #7
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : octobre 2010
    Messages : 1 286
    Points : 2 558
    Points
    2 558
    Par défaut
    Bonjour,

    Peut-être devrais-tu faire ton addition lors de la lecture du résultat de la requête ...
    C'est quand même pas très évolué de ne pas pouvoir faire ces opérations lors du requêtage !

    à bientôt,

    Nicolas

  8. #8
    Membre émérite
    Homme Profil pro
    Inscrit en
    octobre 2007
    Messages
    1 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : octobre 2007
    Messages : 1 075
    Points : 2 439
    Points
    2 439
    Par défaut
    Bonjour,

    SUM(Locations.Prix_location) + 1 AS test
    A mon avis, c'est le SUM + 1 qui ne va pas

    Essayez
    SUM(Locations.Prix_location) AS test, test + 1 AS Résultat
    Cela devrait passer, au moins au niveau de la syntaxe.

    Bon développement

    Hemgé

  9. #9
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : octobre 2010
    Messages : 1 286
    Points : 2 558
    Points
    2 558
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SUM(Locations.Prix_location) AS test, test + 1 AS Résultat
    Non ça ne passe pas ce genre de syntaxe car tu ne peux pas utiliser des valeurs calculées dans les champs suivants.

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : août 2012
    Messages : 6
    Points : 7
    Points
    7
    Par défaut utilise +ieurs requêtes
    slt!

    j'ai eu le mm type de problème et je me suis rendu compte des mm évidences que toi. j'ai contourné en créant +ieurs requêtes:chaque requête avait un résultat que je manipulai (addition,soustraction,...) en fonction de ce que je voulais obtenir. ne prend pas de racourcis

Discussions similaires

  1. [WD16] Requête et Rubrique calculée
    Par GCASPIC10 dans le forum WinDev
    Réponses: 11
    Dernier message: 16/02/2013, 22h20
  2. [WD16] Requête : Utilisation d'une rubrique calculée
    Par lucienkany dans le forum WinDev
    Réponses: 1
    Dernier message: 16/01/2012, 09h18
  3. Ma requête ne calcul pas pour tout les champs
    Par leloup84 dans le forum Requêtes
    Réponses: 10
    Dernier message: 01/03/2006, 13h59
  4. Ma requête ne calcul pas pour tout les champs
    Par leloup84 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 01/03/2006, 11h11
  5. [Debutant]Problème Requête et Calcul
    Par ghan77 dans le forum Bases de données
    Réponses: 9
    Dernier message: 04/01/2006, 15h47

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