Base de donnée gestion de stock à partir d'une extraction

Paulcbrl -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai besoin de faire pour mon travail une base de données qui me permettrait de gérer un stock de cuves avec un identifiant unique à partir d'une extraction d'un autre logiciel.

L'idée est de créer une première table avec la liste totale de ces cuves. Ensuite, une seconde table avec l'extraction du logiciel.

Dans cette extraction, une unité de manutention avec un numéro unique est crée à laquelle est liée un numéro de cuve, un poids stocké et une date.
Voici les exemples de composition que je peux rencontrer :

Unité | Cuve | Stock | Date | + d'autres colonnes qui détaillent ce qu'elles contiennent
A | 1 | 0kg | 01/01/2017
B | 1 | 0kg | 02/01/2017
C | 1 | 253kg | 03/01/2017
D | 2 | 0kg | 04/01/2017
E | 2 | 245kg | 05/01/2017
F | 2 | 420kg |06/01/2017
...

J'ai donc créé deux requêtes, une pour les cuves vides et une pour les cuves utilisées. J'ai ensuite dans l'idée de créer une requête pour assembler les deux (je n'ai pas réussi à tout mettre sur la même requête).

Sur les cuves vides, je filtre (dans critère) sur la date (date max) et le stock (= 0). Cela fonctionne très bien. Cela m'élimine les doublons et ne conserve que la dernière date avec les infos attenantes.

Je copie cette requête pour les cuves pleines, change les filtres et là cela ne fonctionne pas. Cela m'affiche toutes les cuves avec un stock différent de 0 et change même parfois l'ordre en fonction des filtres que j'applique. J'ai essayé de filtrer sur > 0 et différent de 0 (<>) avec la date max. C'est le même souci que je rencontre lorsque j'essaye de créer une requête unique.

Et là, après pas mal de recherches sur le net je cale un peu ...

Pour synthétiser mon besoin : j'ai besoin d'une (ou plusieurs) requête(s) permettant d'afficher uniquement la dernière date d'utilisation d'une de ces cuves avec les informations associées à cette dernière utilisation.

Est-ce quelqu'un saurait me proposer une solution?

Merci d'avance.

PS : Je n'y connais rien en SQL et j'ai des connaissances très limitées sur access.


A voir également:

2 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonsoir, cherches-tu la date maximum de chaque cuve?
select cuve, max(date) from nomtable group by cuve
0
Paulcbrl
 
Bonsoir,

Oui, il me faudrait, en fait pour chaque cuve pouvoir dire si elle est pleine ou pas quelque soit le nombre d'enregistrements.

Donc la date max pour chaque cuve est une méthode appropriée je pense.

Le soucis c'est que tout ce que j'ai essayé en ce sens n'a pas fonctionné, j'ai toujours des doublons (par exemple, la cuve 1 est enregistrée 5 fois, j'essaie un tri pour ne conserver que la date la plus récente mais ça me le tombe à 2 ou 3 enregistrements et je ne sais pas pourquoi !)

Je vais tester la formule que tu viens de me communiquer et je te tiendrais au courant.

Merci d'avoir pris le temps de me répondre.
0
Utilisateur anonyme
 
peut-être un
SELECT DISTINCT
....
0
Paulcbrl
 
Je n'y connais rien en SQL ... Je n'arrive pas à appliquer les formules dont vous me parlez.
0
Paulcbrl
 
J'ai réussi (avec un peu d'aide) grâce à ta formule yb_be, merci à tous les deux de vos réponses !

Maintenant, j'essaie de cacher les valeurs en fond d'une ligne si une des colonnes qui la précède contient quelque chose, une astuce à me donner ?! :)
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Paulcbrl
 
astuce possible pour cacher des valeurs: utiliser iif. par exemple:
select colonne1, iif(colonne1 Is Null,colonne2, "")
0