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 MySQL Discussion :

Calculer le nombre d'enregistrements à chaque insertion ou suppression ou mise à jour


Sujet :

Requêtes MySQL

  1. #1
    Membre à l'essai
    Homme Profil pro
    oui
    Inscrit en
    Septembre 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

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

    Informations forums :
    Inscription : Septembre 2009
    Messages : 29
    Points : 17
    Points
    17
    Par défaut Calculer le nombre d'enregistrements à chaque insertion ou suppression ou mise à jour
    * Bonjour, *

    je voudrais calculer le nombre d’enregistrement de chaque insertion et le résultat sur le champs [poste_ocuper]

    voici les tables
    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
    CREATE TABLE [dbo].[gradde](
        [id_grade] [int] NOT NULL,
        [intitule_grade] [nvarchar](max) NOT NULL,
        [nombre  _post] [int] NOT NULL,
        [poste_ocuper] [int] NULL,
        [defference] [int] NULL,
     CONSTRAINT [PK_gradde] PRIMARY KEY CLUSTERED
     
    CREATE TABLE [dbo].[EMPLOYEE](
        [NUM_EMP] [int] NOT NULL,
        [NOM_EMP] [nvarchar](50) NOT NULL,
        [id_grade] [int] NOT NULL,
     CONSTRAINT [PK_EMPLOYEE] PRIMARY KEY CLUSTERED 
    ALTER TABLE [dbo].[EMPLOYEE]  WITH CHECK ADD  CONSTRAINT [FK_EMPLOYEE_gradde] FOREIGN KEY([id_grade])
    REFERENCES [dbo].[gradde] ([id_grade])
    GO
    ALTER TABLE [dbo].[EMPLOYEE] CHECK CONSTRAINT [FK_EMPLOYEE_gradde]
    GO
    Je voudrais le résultat comme ça:
    si le nombre de postes est 120 chaque insertion d'un employée le [nombre _post] = 1 et [defference] =119
    si le nombre de postes est 120 chaque suppression d'un employée le [nombre _post] = 0 et [defference] =00

    * Merci *

  2. #2
    Membre émérite Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Points : 2 286
    Points
    2 286
    Par défaut
    j'ai beau relire et ça n'est pas clair

    si le nombre de postes est 120 chaque insertion d'un employée le [nombre _post] = 1 et [difference] =119
    Bon j'ai [nombre_post] = 120 par exemple
    Et j'insère un employé
    donc
    [nombre_post] = 1
    [difference] = 119 bon ...
    Ensuite j'insère à nouveau un employé mais [nombre_post] = 1 maintenant et je fais quoi ?


    si le nombre de postes est 120 chaque suppression d'un employée le [nombre_post] = 0 et [difference] =00
    Bon j'ai [nombre_post] = 120 par exemple
    Et je supprime un employé
    donc
    [nombre_post] = 0
    [difference] = 0 bon ...
    Ensuite je supprime à nouveau un employé mais [nombre_post] = 0 maintenant et je fais quoi ?
    Emérite, émérite je ne pense pas ... plutôt dans le développement depuis FORT FORT longtemps, c'est mon job, ça oui
    A part ça ... Il ne pleut jamais en Moselle !

  3. #3
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 786
    Points
    30 786
    Par défaut
    En soi, ces colonnes sont le résultat de calculs. Leur contenu varie dynamiquement en fonction, semble-t-il, du contenu de la table Employee.
    Donc elles n'ont pas lieu d'être figées dans une table mais calculées à la volée par l'intermédiaire d'une vue.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  4. #4
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 379
    Points : 19 060
    Points
    19 060
    Par défaut
    Salut à tous.

    Je voie le nom de schema "dbo". Ne serait-ce pas du Micosoft SQL Server ???
    De plus, la description de vos tables est franchement bizarre. Pourquoi mettre les différents mots entre crochet ???

    Ensuite, votre approche est complètement idiote.
    Vous dites : "si le nombre de postes est 120" et si au lieu de 120, c'est 140, il va falloir reprendre tout le contenu de vos lignes.
    Cela signifie qu'à chaque insertion, vous devez modifier toutes vos lignes. Bonjour la performance !

    La solution donné par "al1_24" est correcte. Vous ne devez pas stocker dans vos tables ces informations, mais utiliser une view pour les afficher.

    Si au lieu de nous exposer votre problème, vous nous disiez ce que vous cherchez à faire, cela serait plus intéressant afin que l'on puisse débattre de la solution.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  5. #5
    Membre à l'essai
    Homme Profil pro
    oui
    Inscrit en
    Septembre 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

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

    Informations forums :
    Inscription : Septembre 2009
    Messages : 29
    Points : 17
    Points
    17
    Par défaut salut a tous
    merci pour votre réponse
    J'ai fait une erreur dans mon message
    Je voudrais le résultat comme ça:
    remarque :
    nombre de post =nombre de postes budgétaire
    différence =postes vacant
    post Occupé = postes occupé par Employé
    la règle de calcul est entre +1 et -1
    En cas d'insertion d'un employé
    1) si le nombre de postes est 120, chaque insertion d'un employé le [poste_occupé] = 1 et [différence] =119 (le nombre de postes- post_occupé)
    comptabilité
    120 1 119
    2) Du moment que le nombre de postes vacant actuel est 119, et lors de l' insertion d'un nouveaux employé, donc le [poste_occupé] = 2 et [différence] =118
    comptabilité
    120 2 118
    le nombre de postes budgétaires est toujours fixe chaque année

    suppression
    si le nombre de postes est 120 chaque suppression d'un employé le [nombre _post] = 1 et [différence] =119
    120 1 119
    Donc, comment afficher le résultat automatiquement sur la table grade dans les champs (' id_grade’,’ intitule_grade’, ' 120' , ’1’, ’ 119’) chaque insertion d'un employée ou suppression d'un employée dans la table employé
    insertion sur la table Employé
    affichage sur la table grade
    je crois qu'il y a un déclencheur pour chaque insertion ou surpression et je ne sais pas Comment faire ça sur sql Server 2012 ou Delphi 7
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     CREATE TABLE [dbo].[gradde](
        [id_grade] [int] NOT NULL,
        [intitule_grade] [nvarchar](max) NOT NULL,
        [nombre  _post] [int] NOT NULL,
        [poste_ocuper] [int] NULL,
        [defference] [int] NULL,
     CONSTRAINT [PK_gradde] PRIMARY KEY CLUSTERED  ...

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     CREATE TABLE [dbo].[EMPLOYEE](
        [NUM_EMP] [int] NOT NULL,
        [NOM_EMP] [nvarchar](50) NOT NULL,
        [id_grade] [int] NOT NULL,
     CONSTRAINT [PK_EMPLOYEE] PRIMARY KEY CLUSTERED 
    ALTER TABLE [dbo].[EMPLOYEE]  WITH CHECK ADD  CONSTRAINT [FK_EMPLOYEE_gradde] FOREIGN KEY([id_grade])
    REFERENCES [dbo].[gradde] ([id_grade])
    GO
    ALTER TABLE [dbo].[EMPLOYEE] CHECK CONSTRAINT [FK_EMPLOYEE_gradde]
    GO...]

Discussions similaires

  1. [MySQL] Calcul du nombre d'enregistrement
    Par jeromeb66 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 12/12/2008, 11h43
  2. Réponses: 8
    Dernier message: 24/04/2008, 15h36
  3. Requête calcul du nombre d'enregistrement
    Par guenfood dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 01/03/2008, 06h28
  4. Calcul du nombre d'enregistrements d'une colonne
    Par nicolas2603 dans le forum Excel
    Réponses: 2
    Dernier message: 03/01/2008, 14h12
  5. Réponses: 9
    Dernier message: 27/09/2007, 15h15

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