Procédure stockée : clause CASE dans mon WHERE ?
Bonjour,
j'ai développé une procédure stockée que je voudrais modifier en y ajoutant une clause CASE dans mon WHERE.
je ne sais absolument pas si c'est possible de prime abord et/ou quels sont les moyens d'y parvenir.
En 2 mots, l'utilisateur final devra soit entrer un code fournisseur soit un code de regroupement fournisseur et la requête ira lui rechercher l'ensemble des mouvements passés avec ce fournisseur.
je voudrais mettre en place une condition à savoir que si mon code regroupement est non null alors la requête utilise le code regroupement en priorité et ne s'occupe pas du code fournisseur, sinon si le code regroupement est vide alors la requête se jouera uniquement par le code fournisseur.
voila mon code à aujourd'hui :
Merci d'avance pour votre aide
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
ALTER PROCEDURE [dbo].[SyntheseCAFournisseur]
-- Add the parameters for the stored procedure here
@CodeFou varchar(9),
@CodeRegr varchar(20),
@DateDeb datetime,
@DateFin datetime
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
Select 'C' as SOCIETE, T_Table2 as code_regroupement, e_contrepartieaux,t_commentaire,e_etablissement, e_journal, et_libelle, e_refinterne, sum(e_debit-e_credit) as SOLDE, e_periode
from C..ecriture
left join C..tiers ON e_contrepartieaux = t_auxiliaire
left join C..etabliss ON e_etablissement = et_etablissement
where e_contrepartieaux = @CodeFou
and T_TABLE2 = @CodeRegr
and e_journal in ('AC','ACO', 'AI', 'AIO')
and e_datecomptable between @DateDeb and @DateFin
and (e_general like '6%' or e_general like '2%')
group by e_contrepartieaux, T_Table2, t_commentaire,e_etablissement, et_libelle, e_journal, e_periode, e_refinterne
END |