Précédent   Forum des professionnels en informatique > Bases de données > Autres SGBD > InterBase
InterBase Forum d'entraide sur le SGBD InterBase de Codegear. Avant de poster -> F.A.Q Interbase, Tutoriels
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/09/2011, 22h03   #1
Invité de passage
 
Elias Ametchi
Inscription : avril 2010
Messages : 13
Détails du profil
Informations personnelles :
Nom : Elias Ametchi

Informations forums :
Inscription : avril 2010
Messages : 13
Points : 3
Points : 3
Par défaut Requête pour afficher une liste de stock

J'aimerais afficher le stock de chaque produit. J'ai écrit cette requête :


Code :
1
2
3
SELECT desprod,(qteprod-(qtevdue) AS stock
FROM produit, concerner
WHERE produit.numprod=concerner.numprod;
Le hic c'est que lorsque je l'exécute, il me donne le même produit, le même nombre vendu et le même restant en stock. Alors que je voudrais avoir comme résultat par exemple :

coca quantité 200 quantité vendue 100 stock 100
coca quantité 100 quantité vendue 50 stock 50
SVP, aidez moi
scofield1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/09/2011, 08h17   #2
Modérateur
 
Avatar de SergioMaster
 
Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 3 617
Détails du profil
Informations personnelles :
Nom : Serge Girard
Âge : 55
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : janvier 2007
Messages : 3 617
Points : 4 521
Points : 4 521
Une description des 2 tables et de la relation entre celles-ci serait un atout non négligeable pour répondre intelligemment .
une tentative :

Code :
1
2
SELECT P.DESPROD,C.QTEPROD,C.QTEVDUE,C.QTEPROD-C.QTEVDUE AS STOCK
FROM CONCERNER C JOIN PRODUIT P ON P.NUMPROD=C.NUMPROD
Donnera un résultat par enregistrement de la table CONCERNER (production ?) , enfin si la relation entre concerner et produit est du type 1 produit 0..n concerner ?

en cas de doute , un LEFT JOIN
__________________
La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein
J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius
SergioMaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/09/2011, 11h43   #3
Invité de passage
 
Elias Ametchi
Inscription : avril 2010
Messages : 13
Détails du profil
Informations personnelles :
Nom : Elias Ametchi

Informations forums :
Inscription : avril 2010
Messages : 13
Points : 3
Points : 3
Produit (numero_produit, libelle_produit, prix_unitaire, quantité_produit) 0,n
vente(numero_vente, date_vente) 1,n
concerner (numero_produit, numero_vente, quantité_vendue, stock, montht, montttc)

Par conséquent c'est une relation 0,n-1,n
scofield1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2011, 08h32   #4
Invité de passage
 
Elias Ametchi
Inscription : avril 2010
Messages : 13
Détails du profil
Informations personnelles :
Nom : Elias Ametchi

Informations forums :
Inscription : avril 2010
Messages : 13
Points : 3
Points : 3
Merci pour votre aide mais cela me donne le même résultat que ma requête. Il réécrit le même nom du produit la même quantité, la même quantité vendue et le même stock
scofield1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 09h48   #5
Invité de passage
 
Elias Ametchi
Inscription : avril 2010
Messages : 13
Détails du profil
Informations personnelles :
Nom : Elias Ametchi

Informations forums :
Inscription : avril 2010
Messages : 13
Points : 3
Points : 3
Code :
1
2
3
SELECT desprod,(qteprod-(qtevdue) AS stock
FROM produit, concerner
WHERE produit.numprod=concerner.numprod;
J'ai du mal me faire comprendre alors je reprends. ce que j'aimerais c'est que lorsqu'on enregistre des données dans la table produit, la quantité du départ est remplacé au fur et à mesure que le produit est vendu jusqu'à ce que la quantité_produit soit à 0
scofield1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2011, 10h17   #6
Modérateur
 
Avatar de SergioMaster
 
Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 3 617
Détails du profil
Informations personnelles :
Nom : Serge Girard
Âge : 55
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : janvier 2007
Messages : 3 617
Points : 4 521
Points : 4 521
Citation:
la quantité du départ est remplacé au fur et à mesure
Alors là , déjà , ce n'est pas un select qu'il va falloir faire mais mettre la valeur dans l'enregistrement via programme ou via un Trigger de la BDD

quelque chose du genre :

Code :
1
2
3
4
5
6
7
 
CREATE TRIGGER biConcerner FOR Concerner
  before INSERT 
AS
begin
  new.Stock = <recherche de la derniere qte stock? via un select> 
end
personnellement je ne mémorise jamais la quantité stock dans une ligne de vente et je préfére de loin avoir un stock par produit obtenu de la manière suivante STOCK=QTE_INVENTAIRE-QTE_SORTIES+QTE_ENTREES
enfin , chacun voit midi a sa porte
__________________
La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein
J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius
SergioMaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h33.


 
 
 
 
Partenaires

Hébergement Web