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

Requêtes et SQL. Discussion :

Addition différentes catégories


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2008
    Messages : 61
    Points : 42
    Points
    42
    Par défaut Addition différentes catégories
    bonsoir tout le monde

    comme d'habitude j'ai un soucis avec access

    explication:

    J'ai une table caisse dans laquelle je rentre mes quantités vendues.

    exp: steak 150 gr vendu 4, steak 200gr vendu 9, steak 300gr...
    entrecote 150gr vendu 6, entrecote 300gr...vendu 7
    .....

    comment pourrais-je faire pour additionner le total de mes quantité ( des grammes vendus) pour chaque désignation d'article??

  2. #2
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonsoir chère @nadège46,

    A première vue (Avec les vendus.... Si tu n'en as pas besoin retire le "*SUM(TaColonneVendu)" ) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    SELECT 
                 TaDésignationarticle
               , SUM(TaColonneQuantitée)*SUM(TaColonneVendu)
     
    FROM
                 Caisse
     
    GROUP BY
                 TaDésignationarticle
    ;
    Mais vu le peu d'information, je pense que l'on se reverra demain

    Bonne nuit !

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2008
    Messages : 61
    Points : 42
    Points
    42
    Par défaut
    ça s'eclaircit...

    mais je crois pas que ça joue car je n'ai pas de colonne quantité pour ainsi dire. donc si je fais comme tu dit j'aurais l'addition de ce que j'ai vendu par catégorie.
    maintenant pour les steak que je met dans la catégorie "steak"
    si je vend 150gr, 200gr.... j'aurais pas le poids vendu...

    De plus, je peux prendre l'exemple de la viande "carpaccio", il faudrait que je puisse additionner les carpaccio, les fondue chinoise 200gr, à volonté....

    Dans ma BD, j'ai une table "fournisseur" lié aux produits laquelle contient le nom, la catégorie, le PA...

    ensuite, j'ai une table caisse liée à la table stock.

    ma table caisse correspond en réalité à une bande de contrôle de caisse enregistreuse.
    cad: idproduit, nom, catégorie, qtvendu


    le but était d'arriver à oter du stock ce que j'ai vendu, pour cela il me faut un moyen de grouper pour les viandes: le poids vendu par genre,
    pour les boissons ça j'ai trouver avec IFF pour calculer les verres en bouteilles

    seulement pour les viandes il y a la catégorie, expl. steak, entrecote....
    mais je n'ai pas pris en compte le poids

    Cela voudrait-il dire que je devrais faire une sous catégorie pour chacune de mes viandes???

    ou il y a un autre moyen??

    merci

  4. #4
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonsoir,

    Alors je crois que tes explications devraient être agrémentés par un jeu d'essai et la description de tes tables... Je ne voudrais pas m'avancer mais je pense que tu dois avoir un petit soucis dans la conception.

    si je vend 150gr, 200gr.... j'aurais pas le poids vendu...
    Ben si avec le "SUM".

    il faudrait que je puisse additionner les carpaccio, les fondue chinoise 200gr, à volonté....
    J'ai pas saisi

    le but était d'arriver à oter du stock
    Il existe de nombreuses discutions à ce sujet sur dvp ! Une petite recherche t'aiderais sûrement !


  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2008
    Messages : 61
    Points : 42
    Points
    42
    Par défaut
    rebonsoir,

    le truc c'est que je n'ai pas de champ quantité.
    expl.

    table caisse
    id nom catégorie vendu
    °1 steak 150 steak 8
    °2 steack 200 steack 10

    le poids et le nom sont un "nom" avec une clé primaire.

    je ne pense pas pouvoir séparer les 2.
    j'ai bien penser faire une formule iff id=1; vendu*150.... mais pour tout les articles cela risque d'etre long....

    je sait pas si je me suis mieu exprimée...

  6. #6
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Je crois à la lecture du fil qu'il y a un probléme de conception.
    Comment veux-tu calculer les volumes sortis si tu n'a pas de quantité. Comme te le dis Chtulus, La quantité sortie est égale au poids unitaire multiplié par le nombre d'éléments sortis.
    En conséquence, dans ta table tu devrais avoir au moins 3 champs

    Article
    Qte Vendue
    Poids Unitaire

    Maintenant, la présentation de ton problème est ambigu. On peut le lire de deux façons :

    "J'ai vendu 2 steacks pour un poids de 200 gr" soit 2 fois 100 gr
    "J'ai vendu 2 steacks de 200 gr" soit 2 fois 200 gr

    Tu comprends donc qu'il nous est assez difficile de t'aider sans davantage d'explication ou un petit extrait de ta base.

    Bonne continuation

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2008
    Messages : 61
    Points : 42
    Points
    42
    Par défaut
    bonjour,

    Cela voudrait dire qu'il faut que je rajoute un champ "poid" dans mes articles ce qui voudrait dire que pour chaque poid de steak different j'aurais une clé différente...

    C'est ça??

  8. #8
    Expert éminent sénior
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 804
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 804
    Points : 34 074
    Points
    34 074
    Billets dans le blog
    14
    Par défaut
    Bonjour Nadège...

    Si je reprends ceci :
    table caisse
    id nom catégorie vendu
    °1 steak 150 steak 8
    °2 steack 200 steack 10
    et ceci :
    pour les viandes il y a la catégorie, expl. steak, entrecote
    ou encore ceci :
    De plus, je peux prendre l'exemple de la viande "carpaccio", il faudrait que je puisse additionner les carpaccio, les fondue chinoise 200gr, à volonté....
    J'en déduit la structure de table suivante :
    Caisse(id, nom, catégorie, vendu)
    Avec pour particularité que le nom comprend également le poids de l'article : ' steak 150'.

    Dès lors, chercher à additionner des poids revient à extraire le poids du texte, ce qui est loin d'être évident !

    Du reste de tes écrits, je déduis que des fournisseurs te fournissent des produits appartenant à une certaine catégorie et ayant un certain poids.

    Parlons maintenant un peu de conception...
    Dans la phrase ci-dessus, j'ai mis en gras les entités du système. Leurs associations sont exprimées par les verbes soulignés et l'attribut 'poids' de l'entité 'Produit' a été mis en italique.

    Schématisons maintenant la phrase :
    Fournisseur -0,n----Fournir----0,n- Produit -1,1----Appartenir----0,n- Catégorie
    Ce qui se lit :
    - Un fournisseur peut ou pas fournir un ou des produits
    - Un produit peut ou pas être fourni par un ou des fournisseurs
    - Un produit appartient à une et une seule catégorie
    - Une catégorie englobe ou pas un ou des produits

    Transformons ça en tables :
    T_Fournisseurs_Frn(Frn_Id, Frn_Nom, ...)
    T_Categories_Cat(Cat_Id, Cat_Nom, ...)
    T_Produits_Prd(Prd_Id, Prd_IdCategorie, Prd_Nom, Prd_Poids, Prd_QteStock...)
    T_Fournir_PF(PF_IdProduit, PF_IdFournisseur)
    Dans les tables ci-dessus, les clés primaires sont soulignées et les clés étrangères sont en italique.

    Tu vends des produits en une certaine quantité et tu les enregistres dans une table que tu as appelé 'Caisse':
    T_Caisse_Cai(Cai_Id, Cai_IdProduit, Cai_QteVendue, Cai_Date, Cai_PrixUnitaireVendu)

    Tu veux connaitre le poids total de ce qui a été vendu dans la catégorie 'Steack' ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT SUM(c.Cai_QteVendue * p.Prd_Poids) AS PoidsTotalVendu
    FROM T_Caisse_Cai AS c
    INNER JOIN T_Produits_Prd AS p ON c.Cai_IdProduit = p.Prd_Id
    INNER JOIN T_Categories_Cat AS cat ON p.Prd_IdCategorie = cat.Cat_Id
    GROUP BY cat.Cat_Nom
    WHERE cat.Cat_Nom = 'Steack'

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2008
    Messages : 61
    Points : 42
    Points
    42
    Par défaut
    bonjour

    merci à tous pour vos réponse.

    j'ai ajouter donc quelque modifications dans ma base telle que rajouter un champ poid dissocier du nom.

    cependant étant une débutante access je comprend ce que tu veux dire en écrivant les code vba mais j'ai de la peine à y reproduire.

    il faut que j'aille ou pour écrire en VBA?

  10. #10
    Expert éminent sénior
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 804
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 804
    Points : 34 074
    Points
    34 074
    Billets dans le blog
    14
    Par défaut
    Euh... c'est pas du VBA mais du SQL !
    D'ailleurs puisque c'est une base Access, pas sûr qu'il accepte la requête telle que je l'ai écrite parce qu'Access est assez fantaisite avec le SQL !

  11. #11
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonjour,

    @ La requête devrait passer. Par contre, je me permet une toute petite rectification :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT SUM(c.Cai_QteVendue * p.Prd_Poids) AS PoidsTotalVendu
    FROM T_Caisse_Cai AS c
    INNER JOIN T_Produits_Prd AS p ON c.Cai_IdProduit = p.Prd_Id
    INNER JOIN T_Categories_Cat AS cat ON p.Prd_IdCategorie = cat.Cat_Id
    GROUP BY cat.Cat_Nom
    HAVING cat.Cat_Nom = 'Steack'

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2008
    Messages : 61
    Points : 42
    Points
    42
    Par défaut
    rebonjour,

    comme je l'ai dit plus haut je comprend plus ou moins ce qu'il faut faire mais je ne vois pas du tout comment m'y prendre.
    En fait je doit créer une requête selection.
    et après je doit faire comment pour écrire tout ca normalement, c'est à dire pas en sql.?

    et j'ai une autre question est-il possible de faire cela pour tous mes produits vendu pas seulement pour "steack"?

    merci d'avance

    (SELECT (SUM (caisse_vendu * produit_poid) AS poidtotalvendu From caisse AS caisse INNER JOIN produit_nom produit AS produit ON caisse_idproduit=produit_idproduit))

    voilà ce que j'ai écrit dans la ligne critère de ma requête sous le champ vendu.

    en sachant que poidtotalvendu n'existe pas. Peut-être est-ce plus clair pour vous car moi je suis incapable de trouver ou il y a une erreur.

  13. #13
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 129
    Points : 55 942
    Points
    55 942
    Billets dans le blog
    131
    Par défaut
    Bonsoir.

    Je vais essayer de te détailler la méthode
    1. construire les 3 tables (Caisse, Produits, Catégories)

    La table des catégories



    La table des produits



    La table des ventes via la caisse



    Ces tables sont liées par un jeu de relations



    On saisit des données dans les différentes tables

    La table des catégories



    La table des produits (attention, le poids est donné en kilos)



    La table des ventes via la caisse



    Maintenant, il reste à utiliser l'assistant requête pour créer la requête qui regroupe les ventes par catégories



    qui donne le résultat suivant


  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2008
    Messages : 61
    Points : 42
    Points
    42
    Par défaut
    merci mille fois a tous pour votre intérêt et vos solutions

    j'ai enfin compris comment faire et en plus j'y suis arriver

    chose que j'aurais pas pu sans vous

    merci encore à tous c'est très sympa

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 08/06/2010, 17h53
  2. 4 articles de catégories différentes
    Par will89 dans le forum Langage SQL
    Réponses: 10
    Dernier message: 25/08/2008, 12h34
  3. Addition des champs de différents dataset
    Par ravaid dans le forum BIRT
    Réponses: 2
    Dernier message: 12/07/2008, 08h59
  4. [MySQL] Annuaire: Affichage des différentes catégories
    Par VFone dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 01/07/2008, 18h38
  5. Addition de deux champs de types différents
    Par marsya dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 07/05/2008, 18h57

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