Reliquat commande
remiki90
Messages postés
132
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
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
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:
- Reliquat de commande
- Invite de commande - Guide
- Commande terminal mac - Guide
- Commande dism - Guide
- Diskpart commande - Guide
- Commande scannow - Guide
5 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
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?
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?
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
1 584
merci, également, de tenir compte de ceci: https://www.commentcamarche.net/infos/25899-demander-de-l-aide-pour-vos-exercices-sur-ccm/
/*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
pour trouver la quantité du réliquat je fait ceci
avec la livraison je fait ceci
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
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
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
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