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 :

[SQL][DEBUTANT] Problème con, aidez moi!


Sujet :

Langage SQL

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 84
    Par défaut [SQL][DEBUTANT] Problème con, aidez moi!
    Bonjour à tous,
    j'ai un problème super bete, mais je n'arrive pas à le résoudre.

    Je veux gérer un petit système de palettes. Il existe plusieurs types de palettes.
    Je veux pouvoir enregistrer par type, le nombre de palettes qui rentrent et qui sortent.
    Je veux donc pouvoir savoir le nombre de palettes que j'ai par type.
    J'ai pour ca une base ou je fais mes entrées sorties avec un booléen qui spécifie si c'est une entrée ou une sortie, un champ qui spécifie le type de la palette et un dernier champ qui spécifie la quantité.
    Rien de compliqué jusque la.

    Mais je n'arrive pas à trouver la requete SQL qui me permettra de connaitre par types le nombre de palettes en stock.
    Je voudrais avoir par exemple :
    Type1 - 20palettes
    Type2 - 5palettes
    Type3 - 45palettes...

    Mon idée serait d'avoir qqchose du style
    SELECT typePalette, SUM(nbPalette) "Palettes en entrée" - SUM(nbPalette) "Palettes en sortie" FROM table GROUP BY typePalette

    Je ne sais donc pas faire la différence de mes 2 sommes. J'ai essayé plusieurs trucs avec des requetes imbriquées... Si je ne trouve pas, je ferais ca en plusieurs requetes ou en m'essayant aux procédures stockées, mais je me dis que qqun à peut être une idée.

    Merci de vos conseils.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 998
    Billets dans le blog
    6
    Par défaut
    Postez le DDL de votre table !
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 84
    Par défaut
    Alors je ne sais pas ce qu'on appelle DDL, mais je mets la requete de création:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    CREATE TABLE `m_gestionpalettecouvercle` (
      `m_idgestionpalette` int(11) NOT NULL auto_increment,
      `m_g_entreesortie` binary(1) NOT NULL,
      `m_idtypepalette` int(11) NOT NULL,
      `m_g_nbpalette` int(11) NOT NULL,
      `m_g_date` date NOT NULL,
      PRIMARY KEY  (`m_idgestionpalette`)
    )

  4. #4
    Membre émérite
    Avatar de Biglo
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 537
    Par défaut
    Étant donné que tu travailles apparemment sous MySQL, cette requête devrait te convenir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT m_idtypepalette, SUM(IF(m_g_entreesortie = 0, m_g_nbpalette, -m_g_nbpalette)) AS stock FROM m_gestionpalettecouvercle GROUP BY m_idtypepalette;
     
    +-----------------+-------+
    | m_idtypepalette | stock |
    +-----------------+-------+
    |               1 |     9 | 
    |               2 |    82 | 
    +-----------------+-------+
    Je fais la somme de chaque quantité, mais en mettant la quantité en valeur négative si c'est une sortie.

    Le code suppose que "m_g_entreesortie = 0" signifie que c'est une entrée. Si c'est une sortie, alors mets 1 ^^

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 84
    Par défaut
    Rien à dire, tu es génial! Ca marche du tonnerre, c'est exactement ce que je voulais.
    Je savais bien qu'il existait un truc propre et pas compliqué pour faire ca! Mais je n'aurais pas su tout seul (il me manquait le IF).
    Je vais jeter un coup d'oeil au IF histoire de voir son utilisation et de pas t'embeter la prochaine fois!

    Encore merci

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

Discussions similaires

  1. problème réseaux, Aidez moi svp
    Par krosofttt dans le forum Développement
    Réponses: 1
    Dernier message: 01/10/2010, 13h48
  2. Connection a une BD SQL SERVER Aidez Moi SVP????
    Par pop bob dans le forum Bases de données
    Réponses: 3
    Dernier message: 07/08/2005, 16h29
  3. Aidez moi je vous en suplie/un problème grave de webhosting
    Par alix the webmasta dans le forum Etudes
    Réponses: 15
    Dernier message: 06/07/2005, 16h55
  4. Pitié, aidez moi : Problème d'initialisation de postgreSQL
    Par ttalourd dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 16/11/2004, 12h10

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