Reliquat commande

Fermé
remiki90 Messages postés 132 Date d'inscription samedi 28 juillet 2012 Statut Membre Dernière intervention 27 décembre 2021 - Modifié le 24 mars 2021 à 12:59
yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024 - 25 mars 2021 à 12:50
salut les gars, j'ai une table commande, ligne commande, livraison et ligne livraison & reliquat, quand un client passe une commande par exemple Cmd1 (art1=15,art2=10 et art3=8) et la table livraison livr1(Cmd1:art1=11,art2=10 et art3=6) la table livraison a la collonne reste a livrer reçois (art1=4,art2=0 et art3=2) donc c'est ca qui est com le reste a livré, et la table reliquat (art1=4,art2=0 et art3=2) du coup pour une prochaine commande des mem produits Cmd2 (art1=9,art2=6 et art3=16) il va cummuler la qté commandée plus le reliquat.....ce qui donne comme réliquat (art1=13,art2=6 et art3=18)
ma question est de savoir comment aditionner la qté de la table reliquat avec la table livraison pour trouver le reste à livrer dans sql server

A voir également:

5 réponses

yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024 1 471
24 mars 2021 à 14:30
bonjour,
peux-tu donner pour chaque table, son nom, ainsi que le nom et le type de chaque champ dans cette table?

peux-tu ensuite montrer clairement un exemple de données qui sont enregistrées?

ensuite, montrer le résultat que tu attends, en fonction de ces données?
0
yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024 1 471
24 mars 2021 à 14:31
0
remiki90 Messages postés 132 Date d'inscription samedi 28 juillet 2012 Statut Membre Dernière intervention 27 décembre 2021
24 mars 2021 à 21:47
/*table article*/
CREATE TABLE [dbo].[bouteuil](
	[refbtl] [nvarchar](255) NOT NULL,
	[prixbtl] [int] NULL,
	[txtonag] [float] NULL,
	[stkin] [int] NULL,
	[ordern] [int] NULL)
 
	/*table Lign commande*/
	CREATE TABLE [dbo].[COMMD](
	[refcom] [int] NOT NULL,
	[date] [date] NULL,
	[refclicm] [nvarchar](255) NULL,
FOREIGN KEY([refclicm])REFERENCES [dbo].[Client] ([refcli]))
 
/*table commande*/
CREATE TABLE [dbo].[Comde](
	[refcmd] [int] NOT NULL,
	[refclicmdd] [nvarchar](255) NULL,
	[qtecmd] [int] NULL,
	[tonagecmd] [int] NULL,
	[montcmd] [int] NULL,
	[margecmd] [int] NULL,
	[gabaritcmd] [nvarchar](255) NULL,
	[zonnecmd] [nvarchar](255) NULL,
	[reliq] [int] NULL,
	[cummul] [int] NULL
 FOREIGN KEY([gabaritcmd])REFERENCES [dbo].[bouteuil] ([refbtl])
 FOREIGN KEY([refclicmdd])REFERENCES [dbo].[Client] ([refcli]) 
 FOREIGN KEY([refcmd])REFERENCES [dbo].[COMMD] ([refcom])
 FOREIGN KEY([zonnecmd])REFERENCES [dbo].[zonne] ([refzone]))
 
/*table reliquat*/
CREATE TABLE [dbo].[Reliquats](
	[refcomrlq] [int] NOT NULL,
	[reflivrerlq] [int] NOT NULL,
	[qtecomrlq] [int] NULL,
	[qtelivrlq] [int] NULL,
	[restrlq] [int] NULL,
	[gabaritrlq] [nvarchar](255) NULL,
	[zonnerlq] [nvarchar](255) NULL,
	[Clirlq] [nvarchar](255) NULL
FOREIGN KEY([Clirlq])REFERENCES [dbo].[Client] ([refcli])
FOREIGN KEY([gabaritrlq])REFERENCES [dbo].[bouteuil] ([refbtl])
FOREIGN KEY([refcomrlq])REFERENCES [dbo].[COMMD] ([refcom])
FOREIGN KEY([reflivrerlq])REFERENCES [dbo].[livr] ([reflivr])
FOREIGN KEY([zonnerlq])REFERENCES [dbo].[zonne] ([refzone]))
GO
 
 /*table ligne livr*/
 CREATE TABLE [dbo].[livr](
	[reflivr] [int] NOT NULL,
	[datelivr] [date] NULL,
	[refcomlivr] [int] NULL,
 FOREIGN KEY([refcomlivr])REFERENCES [dbo].[COMMD] ([refcom]))
GO
 
/*table livraison*/
CREATE TABLE [dbo].[livraisons](
	[reflivre] [int] NOT NULL,
	[refcomlivr] [int] NOT NULL,
	[qtelivr] [int] NULL,
	[tonagelivr] [int] NULL,
	[montlivr] [int] NULL,
	[margelivr] [int] NULL,
	[gabaritlivr] [nvarchar](255) NULL,
	[zonnelivr] [nvarchar](255) NULL,
	[restlivr] [int] NULL,
	[qtecomm] [int] NULL
FOREIGN KEY([gabaritlivr])REFERENCES [dbo].[bouteuil] ([refbtl])
FOREIGN KEY([refcomlivr])REFERENCES [dbo].[COMMD] ([refcom])
FOREIGN KEY([reflivre])REFERENCES [dbo].[livr] ([reflivr])
FOREIGN KEY([zonnelivr])REFERENCES [dbo].[zonne] ([refzone]))
GO


ma question est de savoir comment faire la soustraction de la quantité de la table reliquat avec la table livraison pour trouver le reste à livrer dans sql server

ou je veux-t savoir que serait le reste à livre a la fin de la journée sachant que la commande Num2 n'as pas été livrée
0
yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024 1 471
24 mars 2021 à 21:51
peux-tu montrer clairement un exemple de données qui sont enregistrées?
ensuite, montrer le résultat que tu attends, en fonction de ces données?
0
yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024 1 471 > yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024
24 mars 2021 à 21:53
montre-nous aussi les requêtes que tu utilises pour obtenir:
- la quantité de la table reliquat
- la quantité de la table livraison
0
yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024 1 471 > yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024
24 mars 2021 à 22:37
je ne pourrai pas t'aider si tu ne réponds pas aux questions en #4.
0
remiki90 Messages postés 132 Date d'inscription samedi 28 juillet 2012 Statut Membre Dernière intervention 27 décembre 2021 > yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024
Modifié le 24 mars 2021 à 23:05
table Comde



et ci dessous la table livraisons


table reliquat
0
remiki90 Messages postés 132 Date d'inscription samedi 28 juillet 2012 Statut Membre Dernière intervention 27 décembre 2021 > yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024
24 mars 2021 à 22:55
0
remiki90 Messages postés 132 Date d'inscription samedi 28 juillet 2012 Statut Membre Dernière intervention 27 décembre 2021
24 mars 2021 à 22:23
pour trouver la quantité du réliquat je fait ceci

avec la livraison je fait ceci
insert into Reliquats(refcomrlq,reflivrerlq,qtecomrlq,qtelivrlq,restrlq,gabaritrlq,zonnerlq,Clirlq)values(@refcomrlq,@reflivrerlq,@qtecomrlq,@qtelivrlq,@restrlq,@gabaritrlq,@zonnerlq,@Clirlq)";


je commence l'insertion dans la table reliquat si la quantité livrée est inférieure à la qté commandée par exemple comd=10 mais livraison =7 la table reliquat prend le 3 par rapport au produit

puis la prochaine comd, si je commande qté 9, il fera un update de 9+3 restants ce qui donne le reliquat devient à 12
avec la table commande, je fait
update Reliquats set restrlq = restrlq-@restrlq where gabaritrlq=@gabaritrlq


or ma livraison avait comme reliquat 3, je veut faire de sorte que a ce stade qu'une requête me dise la qté à livré c'est à dire 12(du 9+3) et remet le reliquat à 0 zéro) apartir de cet update au lieu du 3 qui étais à la dernière livraison, mais ma table livraison garde jusque là 3 comme reliquat





0
remiki90 Messages postés 132 Date d'inscription samedi 28 juillet 2012 Statut Membre Dernière intervention 27 décembre 2021
24 mars 2021 à 23:33
1. Comde


2. Livraisons


3. Reliquat apres livraisons


Cmde apres une Livraisons

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024 1 471
25 mars 2021 à 12:50
je pense que la base de données n'est pas bien conçue.
le reliquat, est-ce la quantité encore à livrer?

je pense qu'il est préférable de faire ainsi:
- une table commande, qui est mise à jour uniquement quand une commande est effectuée, et contient uniquement des données à propos de la commande
- une table livraison, qui est mise à jour uniquement quand une livraison est effectuée, et contient uniquement des données à propos de la livraison
- une requête reliquat, qui va calculer les quantités encore à livrer
0