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 :

Besoin d'aide pour une requete


Sujet :

Langage SQL

  1. #1
    jnc
    jnc est déconnecté
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 21
    Points : 12
    Points
    12
    Par défaut Besoin d'aide pour une requete
    Bonjour,

    j'ai la table suivante :

    Expediteur Ref qte

    1 123 0
    1 579 2
    1 789 3
    2 488 2
    2 897 1
    3 457 2
    3 394 0

    Je souhaite réaliser une requete qui me retourne une ligne pour chaque Expediteur contenant :
    -Nombre enregistrements
    -Nombre de qte<>0
    -sommes des qte

    Expediteur Total NbQTE SommesQTE
    1 3 2 5
    2 2 2 3
    3 2 1 2

    Merci pour votre aide

    (j'utilise Access pour les essais)

  2. #2
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Je ne sais pas si CASE WHEN est disponible sous ACCESS, si oui :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT Expediteur, COUNT(*), SUM(CASE WHEN qte = 0 THEN 0 ELSE 1 END), SUM(qte)
    FROM ...
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  3. #3
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    Bonjour,

    Ca doit marcher sous access ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT t1.expediteur, count (t1.qte) as Total, 
    ( select count (t2.qte) from Table1 t2 where t2.expediteur =  t1.expediteur and t2.qte > 0 group by t2.expediteur) as NBQTE, 
    sum (t1.qte) as SommesQTE
    FROM Table1 t1
    group by t1.expediteur;
    Mediat> Excellent le coup du case...Je me note ça ds 1 coin

  4. #4
    jnc
    jnc est déconnecté
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Médiat > Non le CASE de fonctionne pas sous access.

    TheLeadingEdge > Ca marche impeccable

    Merci pour vos réponses.

  5. #5
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Juste un mot pour préciser : dans la sous-requête de TheLeadingEdge, le GROUP BY n'est pas utile. (à moins que ACCESS...)
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  6. #6
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    re,

    Tu as raison Médiat, le group by est de trop. C'est pas access, c'est moi (abus de copier/coller )

    Pour info. il est possible de 'traduire' le CASE SQL en MSAccess par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT t1.expediteur, count(t1.qte) AS Total, sum(IIf(qte=0,0,1)) AS NBQTE, sum(t1.qte) AS SommesQTE
    FROM Table1 AS t1
    GROUP BY t1.expediteur;
    A +

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

Discussions similaires

  1. Besoin d'aide pour une requete SQL
    Par fabris dans le forum Requêtes
    Réponses: 15
    Dernier message: 02/05/2006, 17h03
  2. Besoin d'aide pour une requete
    Par fabris dans le forum Requêtes
    Réponses: 1
    Dernier message: 20/04/2006, 20h15
  3. Besoin d'aide pour une requete SQL
    Par fabris dans le forum Requêtes
    Réponses: 6
    Dernier message: 10/04/2006, 20h27
  4. besoin d'aide pour une requete
    Par Pigoulou dans le forum Requêtes
    Réponses: 2
    Dernier message: 24/02/2006, 20h34
  5. Besoin d'aide pour une requete
    Par Okhotsk dans le forum Langage SQL
    Réponses: 3
    Dernier message: 02/11/2005, 16h30

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