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 :

Deux question sur l'insertion et le calcul dans une BDD


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2016
    Messages : 33
    Points : 28
    Points
    28
    Par défaut Deux question sur l'insertion et le calcul dans une BDD
    Bonjour je suis en train de créer une base de données qui permet l'automatisation d'insertion de données. J'ai un souci au niveau de deux calculs dans ma base, je crois que ce n'est pas très compliqué mais je bloque.

    Nom : tableau1.png
Affichages : 291
Taille : 11,5 Ko

    En gros j'ai plusieurs tables représentant des carrefours comme ci-dessus et j’ai mes deux colonnes qui sont vides

    1. J'aimerais les mettre à jour ou ajouter des valeurs. Je veux faire la somme des VH et que la somme s’insère dans toute les lignes. Pour l'instant j'arrive à faire la somme à l’insérer dans ma colonne Somme_Carr mais cela fait un nouvelle ligne avec des valeurs NULL dans toutes les autres colonnes.

    En gros ça me fait ça

    Nom : tableau2.png
Affichages : 286
Taille : 12,9 Ko

    Alors que je veux ca

    Nom : tableau3.png
Affichages : 280
Taille : 13,2 Ko

    j'utilise

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    INSERT INTO CarrefourA ( Somme_Carr )
     
    SELECT Sum(CarrefourA.VH) AS Somme_Carr
     
    FROM CarrefourA

    J'ai essayer d'ajouter HAVING (([CarrefourA]![Nom_Carr]="A")); ou WHERE mais rien ne fonctionne ....

    2. Toujours en faisant une somme j’aimerais maintenant calculer la somme des branches, c'est a dire la somme des (De = 1) & (De = 2) & ..... soit comme cela dans mon exemple

    Nom : tableau4.png
Affichages : 280
Taille : 12,6 Ko

    Pouvez-vous m'aider ?


    Cordialement Alex

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    INSERT permet de créer une ligne.
    UPDATE permet de mettre à jour une ligne existante.

    Mais en terme de modélisation les colonnes Somme_Carr et Somme_Branche n'ont pas d'intérêt, il vous suffit de faire les sommes lorsque vous interrogez la base.
    Une vue peut éventuellement être créée pour simplifier l'interrogation.

    PS : N'oubliez pas de préciser votre SGBD

  3. #3
    Membre régulier
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Mars 2016
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Mars 2016
    Messages : 58
    Points : 105
    Points
    105
    Par défaut
    Bonjour,

    Vous pouvez creer une vue comme le precisait skuatamad. Si votre SGBD supporte les fonctions de fenetrage, vous pouvez vous inspirer de ceci (SqlServer) :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    WITH TMP AS
      (SELECT 'A' AS Nom_Carr,
              2 AS Num,
              1 AS De,
              2 AS Vers,
              100 AS VH
       UNION ALL SELECT 'A' AS Nom_Carr,
                        3 AS Num,
                        1 AS De,
                        1 AS Vers,
                        10 AS VH
       UNION ALL SELECT 'A' AS Nom_Carr,
                        4 AS Num,
                        2 AS De,
                        1 AS Vers,
                        120 AS VH
       UNION ALL SELECT 'A' AS Nom_Carr,
                        5 AS Num,
                        2 AS De,
                        2 AS Vers,
                        5 AS VH)
    SELECT Nom_Carr,
           Num,
           De,
           Vers,
           VH,
           SUM(VH) OVER (PARTITION BY Nom_Carr, De) AS Somme_Branche,
           SUM(VH) OVER (PARTITION BY Nom_Carr) AS Somme_Car
    FROM TMP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Nom_Carr	Num	De	Vers	VH	Somme_Branche	Somme_Car
    A		3	1	1	10	110		235
    A		2	1	2	100	110		235
    A		5	2	2	5	125		235
    A		4	2	1	120	125		235

Discussions similaires

  1. Insertion de caractères arabes dans une BDD
    Par gsousou dans le forum JDBC
    Réponses: 0
    Dernier message: 22/11/2013, 10h15
  2. Faire un insert ou un update dans une bdd
    Par Aspic dans le forum Développement de jobs
    Réponses: 9
    Dernier message: 08/07/2010, 17h22
  3. Insertion d'un byte[] dans une bdd mssql 2005
    Par telynor dans le forum ASP.NET
    Réponses: 16
    Dernier message: 10/03/2007, 16h43
  4. insertion d'un champs dans une bdd access
    Par pepper18 dans le forum SGBD
    Réponses: 1
    Dernier message: 26/05/2006, 19h47
  5. [HTML] Deux questions sur l'insertion d'icônes (favoris)
    Par LE NEINDRE dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 22/02/2006, 14h47

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