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

Fermé
Paulcbrl - 18 juil. 2017 à 19:03
yg_be Messages postés 22692 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 avril 2024 - 19 juil. 2017 à 18:41
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.


2 réponses

yg_be Messages postés 22692 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 avril 2024 1 471
18 juil. 2017 à 21:01
bonsoir, cherches-tu la date maximum de chaque cuve?
select cuve, max(date) from nomtable group by cuve
0
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
18 juil. 2017 à 22:52
peut-être un
SELECT DISTINCT
....
0
Je n'y connais rien en SQL ... Je n'arrive pas à appliquer les formules dont vous me parlez.
0
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 22692 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 avril 2024 1 471 > Paulcbrl
19 juil. 2017 à 18:41
astuce possible pour cacher des valeurs: utiliser iif. par exemple:
select colonne1, iif(colonne1 Is Null,colonne2, "")
0