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

Bases de données Delphi Discussion :

Ne pas imprimer les articles avec stock zéro


Sujet :

Bases de données Delphi

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 188
    Points : 47
    Points
    47
    Par défaut Ne pas imprimer les articles avec stock zéro
    Je n’arrive pas a trouvée pq ça ne marche pas,
    Qui peut m’aider…
    Merci a vs ts de votre aide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    select
    art_mvt.*
     
    from
    art_mvt
     
    WHERE 
    (sum(art_mvt.q_e)-sum(art_mvt.q_s))>0
    ça ne marche pas, j'obtien la réponse qui suit
    (impossible d’avoir une fonction d’agrégat dans la clause where)

    Help
    Luis F.

    FRANK

  2. #2
    Membre averti Avatar de chtiot
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 385
    Points : 403
    Points
    403
    Par défaut
    tu devrais pas plutot mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE art_mvt.q_e - art_mvt.q_s >0
    ?

  3. #3
    Membre expérimenté
    Avatar de Frank
    Homme Profil pro
    Chef de projet Informatique
    Inscrit en
    Avril 2002
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chef de projet Informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 095
    Points : 1 392
    Points
    1 392
    Par défaut
    Bonjour,

    cette erreur est normale.
    Tu ne peux pas faire une somme sur un champ appelé dans une requête SELECT.

    Par contre, tu peux avoir quelque chose du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select monchamp1,monchamp2
    from 
    art_mvt 
    WHERE 
    (sum(art_mvt.q_e)-sum(art_mvt.q_s))>0
    GROUP BY monchamp1,monchamp2;

  4. #4
    Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 188
    Points : 47
    Points
    47
    Par défaut
    je vais teste,

    merci d'avance a vs tous
    L. F.

  5. #5
    Membre confirmé Avatar de lper
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 396
    Points : 641
    Points
    641
    Par défaut
    Bonjour,
    il y a plusieurs erreurs dans ta requête :
    * le test sur les aggrégats (sum) doit se faire dans la clause HAVING
    * pour utiliser les zones du select, elles doivent être indiquées dans la clause group by
    De ce fait, peux tu plus nous expliquer la structure de ta table et les informations que tu désires afficher, afin que l'on puisse mieux t'aider.
    La faiblesse humaine est d'avoir des curiosités d'apprendre ce qu'on ne voudrait pas savoir

  6. #6
    Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 188
    Points : 47
    Points
    47
    Par défaut
    J’ai une table avec Access2000 a/ mot de passe
    sous D6

    Table art_mvt

    Champs
    Id_art_mvt
    Q_e
    Q_s

    Ou j’ecris tous les mvts d’entree et de sortie articles
    Je voudrais pouvoir faire un trie par id_art_mvt
    La somme des entree moins la somme des sorties et obtenir le stock
    Et ne imprimées que les articles dont le stock est sup. a 0 (exclure les stock 0) (ds un query)

    L F.

  7. #7
    Membre confirmé Avatar de lper
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 396
    Points : 641
    Points
    641
    Par défaut
    Ok, tout devient plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    select 
    Id_art_mvt
    from 
    art_mvt 
    group by id_art_mvt
    having (sum(art_mvt.q_e)-sum(art_mvt.q_s))>0
    La faiblesse humaine est d'avoir des curiosités d'apprendre ce qu'on ne voudrait pas savoir

  8. #8
    Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 188
    Points : 47
    Points
    47
    Par défaut
    Salut lper

    je teste ton idéee
    et merci a toi

    @+

  9. #9
    Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 188
    Points : 47
    Points
    47
    Par défaut
    ds le cas que j’ai d’autres champs ds la table
    est-ce que je peux les inclure ds la même requête ???
    ou comment faire pour les inclure sans devoir passé par un autre query ???
    j'ai essayer sans resultat...il me dit que ce n'est pas possible...

    L F

  10. #10
    Membre confirmé Avatar de lper
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 396
    Points : 641
    Points
    641
    Par défaut
    Les champs que tu mets dans ton select et qui ne sont pas des agrégats doivent être mis aussi dans le group by, exemple :
    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
     
    select 
    a.Id_art_mvt, 
    a.jesaispas,
    b.designation,
    sum(aart_mvt.q_e),
    sum(aart_mvt.q_s)
    from 
    art_mvt a,
    reference b
    where a.id_art_mvt = b.id_art_ref
    group by a.id_art_mvt, 
                  a.jesaispas,
                  b.designation
    having (sum(aart_mvt.q_e)-sum(aart_mvt.q_s))>0
    et pour finir, ton problème serait mieux placé dans le forum SQL
    La faiblesse humaine est d'avoir des curiosités d'apprendre ce qu'on ne voudrait pas savoir

  11. #11
    Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 188
    Points : 47
    Points
    47
    Par défaut
    lper,
    merci a toi
    le premier truc a marché super, je teste le 2émè,
    je vais suivre ton Conseille forum SQL

    merci
    @+
    L F

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

Discussions similaires

  1. NE pas autoriser des chiffres avec des zéros
    Par celiaaa dans le forum VBA Access
    Réponses: 5
    Dernier message: 01/11/2007, 14h57
  2. [PAO]Ne pas imprimer les pages blanches
    Par sicnarf dans le forum Word
    Réponses: 1
    Dernier message: 08/06/2007, 12h57
  3. Réponses: 9
    Dernier message: 15/12/2005, 09h59
  4. Ne pas rafraichir les images avec PHP
    Par tornaod dans le forum Langage
    Réponses: 4
    Dernier message: 07/12/2005, 22h44

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