Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/07/2011, 11h04   #1
Invité de passage
 
Homme
Inscription : juillet 2011
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juillet 2011
Messages : 3
Points : 0
Points : 0
Par défaut Requete avec fonction COUNT

Bonjour.
Je galère depuis quelques jours sur l'écriture d'une requête et je viens vous demander de l'aide. N'étant pas un spécialiste, j'espère être le plus clair possible. Voici mon problème :
- J'ai une première table SQL, intitulée ARCH_FABRICATION, dans laquelle je viens enregistrer, en sortie de ligne, tous les articles produits (1 article sorti = 1 enregistrement). Pour chaque article produit, j'enregistre entre autre, la date de fabrication de l'article, son numéro d'ordre de fabrication, son code SAP, son poids mesuré et un code de classification (1=article OK, 3=hors tolérance inférieure , 4=hors tolérance supérieure ....). Pour un même numéro d'OF, on retrouve plusieurs articles produits. Cette table est de la forme :
ARCH_FABRICATION
DateArchive | NumOF | CodeSAPMarquage | IDClassification | Poids | ....

A partir de cette table, je souhaite remplir une nouvelle table (Table RAPPORT PRODUCTION) qui me permet de remplir un formulaire de consultation des articles produits. Les articles d'un même OF doivent être regroupés en 1 seul enregistrement. Cette table est de la forme :
RAPPORT_PRODUCTION
OF | CodeSAP | DesignationSAP | NB Article OK | Nb Article defectueux | Poids total des articles OK | ...
Les enregistrements sont regroupés par OF. Pour remplir cette table, je réalise une requête INSERT INTO ... FROM ... WHERE .... GROUP BY .... qui me permet de remplir certaines colonnes correctement (OF, codeSAP, Designation SAP ...) En revanche, je n'arrive pas a remplir les colonnes Nb article OK (ceux dont l'IDClassification = 1) et Nb article défectueux (ceux dont l'IDClassification <> 1) regroupés par OF. Je n'arrive pas a utiliser correctement la fonction COUNT. Actuellement, lorsque je fais une requête UPDATE de ma colonne Nb Article OK de la table RAPPORT PRODUCTION, je mets à jours tous les OF avec une même valeur qui est le comptage du nombre d'enregistrement dans la table ARCH FABRICATION dont l'IDClassification est égal à 1. Or je voudrais faire un UPADTE, OF par OF.
Si quelqu'un peut me guider sur la bonne voie, je lui en serait trés reconnaissant. Merci
Monex est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2011, 12h15   #2
Membre Expert
 
Inscription : août 2006
Messages : 1 435
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 1 435
Points : 1 753
Points : 1 753
Bonjour,
Le total peut se faire dans la requete Ajout
Code :
1
2
 
IIf(IDClassification=1;1;0)
avec Somme pour la ligne Opération
et Nb articles OK pour la destination (ligne Ajouter à )

idem pour les articles KO
Code :
1
2
 
IIf(IDClassification<>1;1;0)
helas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2011, 11h42   #3
Invité de passage
 
Homme
Inscription : juillet 2011
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juillet 2011
Messages : 3
Points : 0
Points : 0
Merci helas.
je teste ça dès que j'ai un moment de libre et te tiens au courant du résultat.
Monex est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2011, 16h54   #4
Invité de passage
 
Homme
Inscription : juillet 2011
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juillet 2011
Messages : 3
Points : 0
Points : 0
Je viens de tester en insérant la fonction Iif, mais la requête ne s'exécute pas car j'ai un message d'erreur : Line 1 : Incorrect syntax near '='
Si j'enlève la ligne comprenant la fonction Iif, je n'ai plus d'erreur. Voici ce que j'ai écris actuellement :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Requete = "INSERT INTO TABLE_RAPPORT_PRODUCTION_NAPPES ([OF], LIGNE, POSTE, [DESIGNATION SAP], [POIDS STD SAP], [CODE SAP], [NB NAPPES OK]) " & _
"SELECT TOP 100 PERCENT ARCH_FABRICATION.NumOF AS [OF], ARCH_FABRICATION.IDLigne AS LIGNE, " & _
"CONF_POSTE.Libelle AS POSTE, CONF_ARTICLE_MARQUAGE.Designation AS [DESIGNATION SAP], " & _
"CONF_ARTICLE_MARQUAGE.PoidsStd AS [POIDS STD SAP], ARCH_FABRICATION.CodeSAPMarquage AS [CODE SAP], " & _
"SUM(IIF(ARCH_FABRICATION.IDClassification = 1,'1','0')) AS [NB NAPPES OK] " & _
"FROM ARCH_FABRICATION INNER JOIN " & _
"CONF_POSTE ON ARCH_FABRICATION.IDPoste = CONF_POSTE.ID INNER JOIN " & _
"CONF_ARTICLE_MARQUAGE ON ARCH_FABRICATION.CodeSAPMarquage = CONF_ARTICLE_MARQUAGE.CodeSAP " & _
"WHERE ARCH_FABRICATION.DateFabrication >= CONVERT(DATETIME, " & Date_debut & ", 102)) AND " & _
"(ARCH_FABRICATION.DateFabrication < CONVERT(DATETIME, " & Date_fin & ", 102)) " & _
"GROUP BY ARCH_FABRICATION.NumOF, ARCH_FABRICATION.IDLigne, CONF_POSTE.Libelle, " & _
"ARCH_FABRICATION.CodeSAPMarquage, CONF_ARTICLE_MARQUAGE.Designation, CONF_ARTICLE_MARQUAGE.PoidsStd " & _
"HAVING (ARCH_FABRICATION.IDLigne = " & Me.Ligne_fabrication & ")"
DoCmd.RunSQL Requete
Pour info, le reste de la requête fonctionne correctement et me permet de récupérer les infos désirées (mais pas de compter le nombre d'article OK, d'article non OK par OF).
Monex est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h15.


 
 
 
 
Partenaires

Hébergement Web