[Résolu] Requête calcul stock quantité minimum > commande

Discussions sur le module de base de données Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
youpiyatta
Fraîchement OOthentifié
Messages : 4
Inscription : 18 oct. 2016 16:34

[Résolu] Requête calcul stock quantité minimum > commande

Message par youpiyatta »

bonjour a tous

Mon projet est de réaliser une base de donnée afin de me permettre de gérer les ingrédients qui servent en aéronautique pour me permettre de savoir rapidement:
-Où sont rangé les ingrédients
-leur numéro de lot et leur date de péremption sachant que certains n'en n'ont pas et sont valable a vie
-la quantité en stock pour chacun de ces lots
-quels ingrédients je vais devoir commander (ceux qui arrivent a moins de deux mois d'expiration ou inférieure a une quantités minimum par ingrédient)
-le suivi des commandes pour chaque ingrédient

je suis débutant sur base mais je commence a comprendre un peut la chose.

pour le moment mes tables sont créées:
-1 table pour les informations générales de l’ingrédient et leur quantités minimum a posséder ainsi que quelques observation: tb_ingredient_type
-1 table pour toutes les variantes de ce même produit et leur lieu de stockage: tb_ingredient_variantes
-1 table pour tous les produits en stock avec leur date d'expiration, une case a cocher pour dire si il est sans péremption, la quantité possédée pour chaque lot et l’application qui sert a la commande: tb_ingredient_lots
-1 table pour les commandes en cours avec le numéro de commande, la quantité, des observations: tb_suivi_cmd

J'essaie de créer une requête en SQL pour me sortir la liste de tous les ingrédients a commander. c'est a dire ceux qui remplissent ces conditions:
Quantitée commandée = NULL et date d'expiration arrive dans moins de 60 jours et sans peremption=FALSE
OU
Quantitée commandée = NULL et total des stock des lots d'un ingredient < quantité mini de stock a avoir

et c'est sur cette condition que je coince: total des stock des lots d'un ingredient < quantité mini de stock a avoir

j'ai fait des essais et a chaque fois j'ai un joli message d'erreur.
là elle fonctionne mais sans la dernière condition

je me suis dit que je pourrait faire de ma requête une sous-requête pour grouper les noms quels que soit les NNO pour comparer le total avec ma quantité mini mais la cela dépasse mon peut de compétence et c'est pourquoi je fait appel a vous.

tout ce que je veut de cette requete c'est qu'elle m'affiche une colone avec le cham nom_ingr des ingredients a commander

j'ai joint le fichier
merci d'avance
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 5.1.5.2
Windows 10
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16960
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: [Base] Fichier de gestion des produits industriels

Message par jeanmimi »

Bonjour,
Il y a des anomalies dans les Tables.
Il faudrait relier les Tables concernés par l'ID_Ingrédient (id_ingr) or ici, tu reprends le nom de l'ingrédient dans plusieurs Tables, ce qui n'est pas nécessaire.
Difficultés relations entre Tables.jpg
Pour faire un suivi de Stock, il faut une Table avec le stock initial, puis une Table avec les dates des entrées et des sorties, ainsi que les mouvements des quantités.
En pratique, tu vas avoir :
une Table_Sorties : Id_sortie, Id_ingr, Date_Sortie, Quantites_sorties
Une Table pour les réapprovisionnements : Id_reappro, Id_ing, Date_reappro, Quantites_reappros
Pour le stock courant, c'est une requête qui le calcule. Il y a des exemples de suivi de stocks dans le forum, comme cette Base.
Base_Gestion_dynamique_des_stocks.odb
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
youpiyatta
Fraîchement OOthentifié
Messages : 4
Inscription : 18 oct. 2016 16:34

Re: [Base] Fichier de gestion des produits industriels

Message par youpiyatta »

Bonjour

merci pour la réponse et désolé pour le délai de ma réponse, je modifiait le fichier et ca m'a pris un peut de temps

J'ai modifié la table ingr_variante pour remplacer le champ non_ingr par son id afin qu'il récupère le nom sur la table ingredient_type lors de la requête.

Par contre la façon dont ils gèrent les stock dans votre fichier exemple n'est pas notre façon de fonctionner.

Chez nous on sort un ingrédient de l'armoire pour l'utiliser puis on le remet a sa place si il en reste dans le pot très souvent dans la journée et ce sont plus de 70 personnes qui les manipules.
On ne rempli donc pas un fichier a chaque mouvement du produit.
Par contre les responsables ingrédients (dont je fait partie) font tous les début du mois un inventaire des armoires pour regarder quels produits arrivent en péremption, si les quantité sont suffisantes, passer les commandes, ect.. et là on met le fichier a jour.
On le remplis aussi quand on reçois une commande ou que l'on en passe une n'importe quand dans le mois.

j'ai finalement réussi a me debugger la requete. J'ai revu les conditions.
J'ai finalement pris les ingrédient > 60 jours avant la date d'expiration puis j'ai encore groupé les ingrédients puis gardé les quantité > quantité mini indiquée pour chaque ingredient
comme ca il ne prend pas en compte la quantité d’ingrédient qui va finir a la poubelle dans les 60 jours.

J'ai aussi crée un formulaire qui correspond plus a mes besoins (les boutons imprimer et ouvrir les fds ne fonctionnement pas encore) et un rapport qui me sort une feuille par armoire
J'ai juste un problème avec mon formulaire:
quand j'ajoute un ingredient: OK
par contre si je remplis une ligne du tableau des variantes du lots ou encore des commandes j'ai ce message d'erreur lors de l'enregistrement de la saisie:
Statut SQL: 23000
Code d'erreur: -10
Attempt to insert null into a non-nullable column: column: ID table: tb_ingredient_variantes in statement [INSERT INTO "tb_ingredient_variantes" ( "id_type_ingr","nno_ingr","numarmo_ingr","pn_ingr") VALUES ( ?,?,?,?)]
par contre si je modifie une ligne déja existante, ca marche

là je suis perdu

je joint mon fichier
C'est bon, je suis un boulet, j'avait oublié de mettre l'id des tables variantes, lot et commande sur autovaleur=oui

quand j'aurait réussi a faire marcher mon boutton qui ouvre le rapport je posterait la dernière version de mon fichier
pour les bouttons ouvrir FDS c'est juste un lien HTML,donc ca c'est tout bête a faire

merci encore
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 5.1.5.2
Windows 10