[Résolu] Requête avec soustraction

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.
Michael 42
Fraîchement OOthentifié
Messages : 9
Inscription : 02 juil. 2024 09:13

[Résolu] Requête avec soustraction

Message par Michael 42 »

Bonjour,
Je me suis créer une base de donnée afin de pouvoir gérer le stock d'articles.
J'ai repris un exemple trouver sur le forum "Test2" pour ma base de donnée, cela fonctionne plutôt bien.
Si je viens vous demander de l'aide c'est au sujet de ma requête "R_ACHAT_VENTE", elle me permet de faire la soustraction entre ma "QtéAchat" et ma "QtéVente" qui est affiché dans la colonne allias "Stock" avec comme formule dans le champ "R_ACHAT"."QtéAchat" - "R_VENTE"."QtéVente".
Ma requête n'affiche le stock que si il y as une quantité en table achat et en table vente, c'est ce qui me pose problème car si j'entre en achat une quantité pour un article avec mon formulaire "F_COMMANDE" il ne s'affiche pas en stock tant que je n'ai pas entrée une quantité en vente.
Je joint mon fichier dans lequel apparait en table achat à la ligne 13 une quantité d'achat de 400 pour l'article ID 4,et dans la table vente aucune ligne pour l'article ID 4.on peut voir dans la requête R_ACHAT_VENTE le calcul du stock ne se fait pas pour l'article ID 4.
Comment pourrai je faire pour contourner ce problème?
Cordialement.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Michael 42 le 15 juil. 2024 16:18, modifié 2 fois.
Libre office 7.2 sous Windows 10 Pro
Avatar de l’utilisateur
rollmops
PassiOOnné
PassiOOnné
Messages : 692
Inscription : 20 déc. 2017 14:45

Re: requête avec soustraction

Message par rollmops »

Bonjour,

Votre schéma relationnel est incomplet. Pas de relation et pas de table T_ACHAT.
Quand vous faites une vente, vous ne vendez qu'un article ?
J'ai aussi du mal à comprendre ce qu'est une commande ou un devis si vous avez déjà des ventes et des achats.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
OpenOffice 4.1.15 - Windows 10
Michael 42
Fraîchement OOthentifié
Messages : 9
Inscription : 02 juil. 2024 09:13

Re: requête avec soustraction

Message par Michael 42 »

Bonjour,
rollmops a écrit : 15 juil. 2024 08:09 Votre schéma relationnel est incomplet. Pas de relation et pas de table T_ACHAT.
Je n'ai peut être pas joint le bon fichier, je remet un fichier avec les relation qui me semble correct, mais cela ne règle pas mon problème.
rollmops a écrit : 15 juil. 2024 08:09 Quand vous faites une vente, vous ne vendez qu'un article ?
Non justement je ma suis fait ce fichier pour pouvoir vendre et acheter plusieurs référence en même temps, par le biais d'une commande ou d'un devis.
rollmops a écrit : 15 juil. 2024 08:09 J'ai aussi du mal à comprendre ce qu'est une commande ou un devis si vous avez déjà des ventes et des achats.
En résumer un devis permet de vendre des articles et une commande permet d'acheter des articles.
Je me sert du formulaire F_DEVIS pour enregistrer les donnée du devis dans la table T_DEVIS et la liste d'article dans la table T_VENTE.
Pour le formulaire F_COMMANDE il renseigne les information, commande dans la table T_COMMANDE et la liste d'articles dans la table T_VENTE.
Cela me permet de consulter la liste d'article suivant un numéro de devis ou de commande.

J'espère que ses explication vous aidera à comprendre mon fichier.
Cordialement.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre office 7.2 sous Windows 10 Pro
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 17084
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: requête avec soustraction

Message par jeanmimi »

Bonjour,
Michael 42 a écrit : 14 juil. 2024 19:47 Ma requête n'affiche le stock que si il y as une quantité en table achat et en table vente
En modifiant la Requête de cette manière :
Requête Jointure droite.png

Code : Tout sélectionner

SELECT "R_ACHAT"."QtéAchat", "R_ACHAT"."ID_Article", IFNULL( "QtéVente", 0 ) AS "QtéVente", IFNULL( ( "R_ACHAT"."QtéAchat" - "R_VENTE"."QtéVente" ), "QtéAchat" ) AS "Stock" FROM { oj "R_VENTE" RIGHT OUTER JOIN "R_ACHAT" ON "R_VENTE"."ID_Article" = "R_ACHAT"."ID_Article" }
la requête affichera aussi les valeurs nulles :
Requête affichage valeurs nulles.png
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par jeanmimi le 15 juil. 2024 18:19, modifié 1 fois.
LibreOffice : Version : 24.8.2 (x64)(10 novembre 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Michael 42
Fraîchement OOthentifié
Messages : 9
Inscription : 02 juil. 2024 09:13

Re: requête avec soustraction

Message par Michael 42 »

jeanmimi a écrit : 15 juil. 2024 12:37 En modifiant la Requête de cette manière :
Super cela fonctionne parfaitement merci beaucoup.
J'avais la piste de "IFNULL" mais je n'ai pas reussi tous seul.
Pour info j'ai demander à chat GPT:

""R_ACHAT"."QtéAchat" - "R_VENTE"."QtéVente" comment faire si R_VENTE non saisie egale zero"

Et il m'as répondue:

"Voici un exemple de requête qui effectue cette opération en prenant en compte le cas où "QtéVente" est nulle ou égale à zéro :

```sql
SELECT "R_ACHAT"."QtéAchat" - IFNULL("R_VENTE"."QtéVente", 0) AS Différence
FROM "R_ACHAT"
LEFT JOIN "R_VENTE" ON (condition de jointure entre les tables)"

Evidement ce ne rien rien comparer au réponse apporté sur ce forum mais peut être que ca peut dépanner ou donner quelque piste.
Merci à tous.
Libre office 7.2 sous Windows 10 Pro