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 :

Intégrité des données numériques


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 79
    Points : 26
    Points
    26
    Par défaut Intégrité des données numériques

    Bonjour, voici un exemple de fichier Excel que je lie à une table sous Access. J'aimerais créer une requête en SQL vérifiant par exemple que 20+30=50, etc
    Débutant en la matière, je viens demander secours...!
    Merci d'avance.

  2. #2
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 79
    Points : 26
    Points
    26
    Par défaut
    En fait je les sélectionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT ESQ.[PRG_Clé primaire], ESQ.PRG_Quantités, ESQ.[ESQ_Clé primaire], ESQ.ESQ_Quantités
    FROM ESQ;
    Il me faut virer le premier champ (qui sert juste pour la liaison Excel au niveau des types de données), et faire un boulot algo qui vérifie à chaque fois que la somme des quantités des subdivisions égale la quantité initiale.
    Une idée ?

  3. #3
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    salut regliss76,

    Citation Envoyé par regliss76
    J'aimerais créer une requête en SQL vérifiant par exemple que 20+30=50
    et que 1+1=2?
    je te le confirme...

    mais si c'est pour confirmer que le résultat de <PRG_Quantités> est la somme des <ESQ_Quantités> pour chaque <PRG_Clé primaire> alors il va falloir:
    .soit remettre en forme ton tableau et remplir les "celulles" vides surtout dans <PRG_Clé primaire>.
    .soit une règle pour pouvoir regrouper les enregistrements par <PRG_Clé primaire>.
    .soit le faire le test dans Excel


  4. #4
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 79
    Points : 26
    Points
    26
    Par défaut
    Merci vodiem pour ton humour ô combien merveilleux.
    Voici mon tableau remanié :

    J'ai créé 2 requêtes :
    Intégrité1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT ESQ.[PRG_Clé primaire], Sum(ESQ.ESQ_Quantités) AS Sommes_partielles
    FROM ESQ
    GROUP BY ESQ.[PRG_Clé primaire]
    ORDER BY ESQ.[PRG_Clé primaire];


    Intégrité2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT ESQ.[PRG_Clé primaire], Sum(ESQ.PRG_Quantités) AS Sommes_totales
    FROM ESQ
    GROUP BY ESQ.[PRG_Clé primaire]
    ORDER BY ESQ.[PRG_Clé primaire];

    J'obtiens bien les 2 mêmes tables. Par contre je n'arrive pas à faire une requête affichant une comparaison des 2...

  5. #5
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    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 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Essayons avec une jointure qui va chercher les différences :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SELECT t1.[PRG_Clé primaire], t1.Sommes_partielles, t2.Sommes_totales
    FROM (
      SELECT ESQ.[PRG_Clé primaire], Sum(ESQ.ESQ_Quantités) AS Sommes_partielles
      FROM ESQ
      GROUP BY ESQ.[PRG_Clé primaire]
      ORDER BY ESQ.[PRG_Clé primaire]
    ) t1 INNER JOIN (
      SELECT ESQ.[PRG_Clé primaire], Sum(ESQ.PRG_Quantités) AS Sommes_totales
      FROM ESQ
      GROUP BY ESQ.[PRG_Clé primaire]
      ORDER BY ESQ.[PRG_Clé primaire]
    ) t2 ON t1.[PRG_Clé primaire] = t2.[PRG_Clé primaire]
    WHERE t1.Sommes_partielles <> t2.Sommes_totales
    Et comme tu es sous Access et que tu as sans doute enregistré tes requêtes, tu peux directement mettre leur nom à la place de leur texte entre parenthèses.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 79
    Points : 26
    Points
    26
    Par défaut
    Merci Cinephil, le problème c'est qu'il me met erreur de syntaxe dans la clause FROM...ne manque-t-il pas des ; et des AS ?

  7. #7
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    différence:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT ESQ.[PRG_Clé primaire],  max(ESQ.PRG_Quantités) AS Montant, Sum(ESQ.ESQ_Quantités) AS Cumul, Montant-Cumul as Différence
    FROM ESQ
    GROUP BY ESQ.[PRG_Clé primaire]
    ORDER BY ESQ.[PRG_Clé primaire];

    ou seulement ceux différent:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT ESQ.[PRG_Clé primaire],  max(ESQ.PRG_Quantités) - Sum(ESQ.ESQ_Quantités) as Différence
    FROM ESQ
    GROUP BY ESQ.[PRG_Clé primaire]
    HAVING max(ESQ.PRG_Quantités)<>Sum(ESQ.ESQ_Quantités)
    ORDER BY ESQ.[PRG_Clé primaire]

  8. #8
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 79
    Points : 26
    Points
    26
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT t1.[PRG_Clé primaire], t1.Sommes_partielles, t2.Sommes_totales
    FROM Intégrité1 AS t1 INNER JOIN Intégrité2 AS t2 ON t1.[PRG_Clé primaire]=t2.[PRG_Clé primaire]
    WHERE t1.Sommes_partielles<>t2.Sommes_totales;
    Ceci marche impec'

    EDIT : thanks everybody

  9. #9
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    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 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    N'oublie pas :

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

Discussions similaires

  1. Intégrité des données numériques
    Par regliss76 dans le forum Excel
    Réponses: 4
    Dernier message: 19/08/2008, 15h06
  2. [N-Tier] Multi-couches et intégrité des données
    Par alexc_fr dans le forum Autres
    Réponses: 6
    Dernier message: 04/04/2007, 16h04
  3. Réponses: 4
    Dernier message: 09/01/2007, 15h20
  4. Réponses: 4
    Dernier message: 11/09/2006, 13h47
  5. [OLAP]verifier l'intégrité des données
    Par crazy dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 13/07/2006, 12h30

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