Messages : 93
Sujets : 27
Inscription : Mar 2007
Réputation :
0
Bonsoir à Vous .
Je reviens un peu sur mon souci en étant plus explicite pour vous aider
à cerner la problématique ...
J'ai un Fichier LignedeStocks qui possède les rubriques suivantes :
CodeProduit
DésignationProduit
DatePéremption
Prix
Quantité
A noter que ( chez moi ) Quantité est un Entier Relatif ' Type entier signé sur 2 octets )
( Une Quantité Négative correspondrait à un Avoir , à un produit périmé non vendu , un échange en sortie avec confrère .... )
Au passage , il s'agit d'une Gestion de Pharmacie ....
Le souci : Je fais une requête en Sélection du type :
Faire la somme des Quantité (du fichier LignedeStocks) par (DatePeremption,CodeProduit,Prix,Désignation )
identiques et tels que CodeProduit est égal à 'Param1' . Le résultat est trié selon la valeur de DatePéremptiion par ordre croissant.
Par exemple : je donne 6 lignes de Stocks
0000003 :NEUTROGENA SHAMP EXTRA-DOUX : 01/03/2015 : 95.25 : 10 .
0000003 :NEUTROGENA SHAMP EXTRA-DOUX : 01/03/2015 : 95.25 : 15 .
0000003 :NEUTROGENA SHAMP EXTRA-DOUX : 01/03/2015 : 95.25 : -6 .
0000003 :NEUTROGENA SHAMP EXTRA-DOUX : 01/03/2015 : 95.25 : -18 .
0000003 :NEUTROGENA SHAMP EXTRA-DOUX : 05/09/2017 : 105.35 : 4 .
0000003 :NEUTROGENA SHAMP EXTRA-DOUX : 05/09/2017 : 105.35 : -1 .
La requête me donne le résultat suivant :
0000003 :NEUTROGENA SHAMP EXTRA-DOUX : 01/03/2015 : 95.25 : 25 .
0000003 :NEUTROGENA SHAMP EXTRA-DOUX : 01/03/2015 : 95.25 : -24 .
0000003 :NEUTROGENA SHAMP EXTRA-DOUX : 05/09/2017 : 105.35 : 4 .
0000003 :NEUTROGENA SHAMP EXTRA-DOUX : 05/09/2017 : 105.35 : -1 .
ALORS que j'espérais avoir ceci :
0000003 :NEUTROGENA SHAMP EXTRA-DOUX : 01/03/2015 : 95.25 : 1 .
0000003 :NEUTROGENA SHAMP EXTRA-DOUX : 05/09/2017 : 105.35 : 3 .
Au final , WD9 ne sait-il pas faire la somme des entiers RELATIFS dans les requêtes ???
MERCI infiniment pour Votre AIDE . Lhassane
Messages : 5,594
Sujets : 87
Inscription : Nov 2005
Réputation :
0
Bonsoir,
Oui WD9 il fait la somme des nombres relatifs, il suffit de mettre le signe "+" devant, exemple: "+999" comme masque de saisie ou d'affichage de colonne.
20
30
10
-5
15
-10
----
60
Se souvenir et savoir sont deux choses différentes. Se souvenir, c'est garder en mémoire. En revanche, savoir signifie assimiler sans dépendre d'un modèle.
WD 4.1 => 23
Messages : 93
Sujets : 27
Inscription : Mar 2007
Réputation :
0
BJR Samifred .
Merci beaucoup . J'ai veillé aux Masques de Saisie comme Tu l'as indiqué ....
Cela ne fonctionne toujours pas .
Est ce que Ma Requête est CORRECTE dans son élaboration ?
Bonne Journée à Vous . Lhassane
Messages : 412
Sujets : 0
Inscription : Jun 2010
Réputation :
0
Salut Bourbaki,
Peux tu poster le code SQL de ta requête ?
Cordialement
Madsl@nD
Messages : 93
Sujets : 27
Inscription : Mar 2007
Réputation :
0
BJR Madsl@nd .
Le Voici :
SELECT LGNSTOCKS.PRDESIG AS PRDESIG,LGNSTOCKS.MACLE AS MACLE,SUM(LGNSTOCKS.PRDQTE) AS la_somme_PRDQTE,LGNSTOCKS.PRDPER AS PRDPER,LGNSTOCKS.PRCODE AS PRCODE,LGNSTOCKS.PRDPRIX AS PRDPRIX FROM LGNSTOCKS WHERE LGNSTOCKS.PRCODE = Param1 GROUP BY LGNSTOCKS.PRDPER, LGNSTOCKS.PRCODE, LGNSTOCKS.PRDPRIX, LGNSTOCKS.PRDESIG, LGNSTOCKS.MACLE ORDER BY PRDPER ASC
LGNSTOCKS est le nom du Fichier LignedeStocks
PRDESIG=DésignationduProduit
PRDQTE=QuantitéduProduit
PRDPER=DatedePéremption
PRDPRIX=PrixduProduit
PRCODE=CodeduProduit
MACLE( CléComposée)=PRDDESIG+PRDPRIX+PRDPER (( Cette Clé est en fait superflue pour l'Extraction ..... )
Merci Encore pour ton Intervention . Lhassane
Messages : 5,594
Sujets : 87
Inscription : Nov 2005
Réputation :
0
Bonjour,
Depuis une table mémoire des ventes... (ou autre) ici c'est pour le test. On pourrait aussi passer par un tableau dynamique. Voir le résultat selon tes données et mes données ajoutées.
Code bouton... [Tri par date de péremption et calcul de la quantité] lecture ligne par ligne de la table K1 et remplissage de la table K2 avec les données calculées.
Code :
LOCALE
dDateExpiration est une Date
i, nQt sont des entiers
//Affectation de la première ligne
dDateExpiration = Table_K1[1][4]
//Toute la table de vente + 1
POUR i = 1 A TableOccurrence(Table_K1) + 1
//On compare la date lue avec la date précédente dDateExpiration
SI Table_K1[i][4] = dDateExpiration ALORS
//On calcul la quantité
nQt += Table_K1[i][6]
SINON
//Affectation de la ligne suivante
dDateExpiration = Table_K1[i][4]
//On affiche la ligne dans la table
TableAjouteLigne(Table_K2,Table_K1.IDK1[i-1],Table_K1.Ref[i-1],Table_K1.Lib[i-1],Table_K1.Date[i-1],Table_K1.Prix[i-1],nQt)
//On affecte la quantitée lue
nQt = Table_K1[i][6]
FIN
FIN
Se souvenir et savoir sont deux choses différentes. Se souvenir, c'est garder en mémoire. En revanche, savoir signifie assimiler sans dépendre d'un modèle.
WD 4.1 => 23
Messages : 93
Sujets : 27
Inscription : Mar 2007
Réputation :
0
Merci Samifred pour Ton Aide .
En fait ce que Tu as développé là me servira dans l' Audit du Stock c'est à dire : comparer l'état du stock pour un Produit donné en Ordinateur avec l'etat réel en magasin ..... Ce qui permettrait de détecter les anomalies ( dysfonctionnements et malversations ) .
J'apprécie beaucoup la qualité de Ton Code . Lhassane
PS : avec Madsl@nd , on va voir pourquoi ma Requête avec "Faire la somme des Quantités " ne fonctionne pas ?
Très Bon Week End à Vous Deux .
Messages : 93
Sujets : 27
Inscription : Mar 2007
Réputation :
0
BJR Samifred .
J" ai reproduis Ton Code aussi bien en WD9 qu'en WD17 en l'adaptant à mes Tables .
Mais apparemment , il fonctionne ( c'est à dire qu'il fait le Tri en DatedePéremption ( croissante ) en faisant le Cumul des Quantités ) seulement , il s'arrête à l' avant dernière Date de Péremption ??!!!
Il ne gère pas la Péremption la plus éloignée .....
C'est une question d' indice peut être ????
Merci Encore . Lhassane