En fait je les sélectionne
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.
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;
Une idée ?
salut regliss76,
et que 1+1=2?Envoyé par regliss76
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
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...
Essayons avec une jointure qui va chercher les différences :
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.
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
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 ?
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]
Ceci marche impec'
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;
EDIT : thanks everybody
N'oublie pas :
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager