requete sous delphi - Programmation
Marsh Posté le 05-04-2001 à 12:32:22
Pourriez vous me donner un exemple s'il vous plait, la doc st un peu confuse
Marsh Posté le 05-04-2001 à 12:42:43
Ton code devrait resembler à ça :
procedure TForm1.Button1Click(Sender: TObject);
var
sReference, sDateDebut, sDateFin : string;
begin
sReference:= InputBox('Saisie', 'Référence ?', '');
sDateDebut:= InputBox('Saisie', 'Date Début ?', '');
sDateFin:= InputBox('Saisie', 'Date Fin ?', '');
qryNbArticle.ParamByName('Ref').AsString := sReference;
qryNbArticle.ParamByName('DateDebut').AsString := sReference;
qryNbArticle.ParamByName('DateFin').AsString := sReference;
qryNbArticle.Open;
if qryNbArticle.FindFirst then
ShowMessage(qryNbArticle.FieldByName('Nb').AsString);
end;
qryNbArticle : TQuery -> la requête avec comme paramètre
Ref, DateDebut et DateFin et comme nom de champ Nb pour le nb
d'articles.
Marsh Posté le 05-04-2001 à 12:53:09
Donc, cela me fait, si j'ai bien saisi,
demande de la référence
demande date début
demande date fin
cela ne m'affichera que le nombre total dans un showmessage d'articles sortis ou entrés pendant la période ou bien toutes les lignes correspondant à la référence ??
la requete doit donc ressembler à cela
select Ref, DateDebut et DateFin
Comment faire pour qu'il aditionne tous les chiffres, je sais que cela se fait par un count, mais comment l'appliquer ???
Marsh Posté le 05-04-2001 à 13:35:51
Houlà, on dirai que tu maitrises pas tout à fait le sql.
Ta requête, ça doit être qqchose du genre (pour faire la
somme des qtes, tu remplaces sum(entree_produit.qte) par
count(1) pour avoir le nombre de lignes...)
select
sum(entree_produit.qte) nb
from
entree_produit
where
entree_produit.reference = :ref and
entree_produit.date_entree >= atedebut and
entree_produit.date_entree <= atefin
A toi de remplacer le nom de la table et des champs par
ce que tu as dans ta base.
Le : permet d'indiquer un paramètre. Delphi remplace le
paramètre par la valeur indiquée en faisant ParamByName('MACHIN')
avant d'ouvrir la requête.
Marsh Posté le 05-04-2001 à 13:47:42
cela donne cela ???
Ma table s'appelle ENDT, mes champs s'appellent No_Entree, reference_Produit, Date_Entree, Quantite_Entree.
Donc cela donne
qryNbArticle : TQuery
select
count(1) nb
from
Quantite_Entree
where
Quantite_Entree.reference = :ref and
Quantite_Entree.date_entree >= datedebut and
Quantite_Entree.date_entree <= datefin
C'est bon, mais j'indique où le nom de la table ???
Marsh Posté le 05-04-2001 à 14:45:00
Nan, c'est ça :
select
count(1) nb
from
ENDT
where
reference = :ref and
date_entree >= atedebut and
date_entree <= atefin
-> dans nb, tu as le nombre de ligne.
Si tu veux la somme des entrées/sorties, tu fais
select
sum(Quantite_Entree) nb
from
ENDT
where
reference = :ref and
date_entree >= atedebut and
date_entree <= atefin
Marsh Posté le 05-04-2001 à 14:54:41
entre count et sum ???,
moi je veux par ex
le produit x a été sorti x fois entre le 26/02/2001 et le 29/02/2001.
vous voyez ????
Marsh Posté le 05-04-2001 à 11:53:22
Utilise la fonction InputBox (regarde dans l'aide).
Elle ouvre une boîte de dialogue et retourne la chaîne saisie.