Boucle de condition type if then else en sql
Résolu
juliusescalibus
Messages postés
39
Date d'inscription
Statut
Membre
Dernière intervention
-
juliusescalibus Messages postés 39 Date d'inscription Statut Membre Dernière intervention -
juliusescalibus Messages postés 39 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je souhaiterai mettre une condition de fin à ma requete ci dessous:
select FinCommande.DO_Client, FinCommande.DO_NomCli, COUNT (FinCommande.DO_Piece) as nbcdes
from FinCommande
where FinCommande.do_date between '01/01/2012' and '29/01/2014'
and (FinCommande.DO_Piece IN (SELECT DO_Piece FROM ACIBOIS.dbo.F_DOCLIGNE)
or FinCommande.DO_Piece IN (SELECT DL_PieceBC FROM ACIBOIS.dbo.F_DOCLIGNE))
group by FinCommande.do_client, FinCommande.DO_NomCli
order by FinCommande.DO_NomCli
en effet , je voudrais mettre la condition suivante : SI le COUNT (FinCommande.DO_Piece)=0
THEN afficher (comme même) le resultat nbcdes=0 dans la colonne asociée
merci d'avance pour vos reponse
Je souhaiterai mettre une condition de fin à ma requete ci dessous:
select FinCommande.DO_Client, FinCommande.DO_NomCli, COUNT (FinCommande.DO_Piece) as nbcdes
from FinCommande
where FinCommande.do_date between '01/01/2012' and '29/01/2014'
and (FinCommande.DO_Piece IN (SELECT DO_Piece FROM ACIBOIS.dbo.F_DOCLIGNE)
or FinCommande.DO_Piece IN (SELECT DL_PieceBC FROM ACIBOIS.dbo.F_DOCLIGNE))
group by FinCommande.do_client, FinCommande.DO_NomCli
order by FinCommande.DO_NomCli
en effet , je voudrais mettre la condition suivante : SI le COUNT (FinCommande.DO_Piece)=0
THEN afficher (comme même) le resultat nbcdes=0 dans la colonne asociée
merci d'avance pour vos reponse
A voir également:
- Boucle de condition type if then else en sql
- Excel cellule couleur si condition texte - Guide
- Clear type - Guide
- Type de ram - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
1 réponse
voici la requete qui fonctionne :
select d.DO_NomCli,d.nbdevis,c.nbcdes,cast(round((cast(c.nbcdes as decimal(10,2))/cast(d.nbdevis as decimal(10,2))) * 100, 2)as decimal(10,2)) as TxTrsf from ( SELECT FinDevis.DO_NomCli, COUNT (DISTINCT FinDevis.do_piece) as nbdevis FROM FinDevis WHERE findevis.DO_Date BETWEEN '01/01/2012' AND '29/01/2014'
GROUP BY FinDevis.DO_NomCli ) as D
left outer join (
select FinCommande.DO_NomCli, COUNT (FinCommande.DO_Piece) as nbcdes from FinCommande where FinCommande.do_date between '01/01/2012' and '29/01/2014'
and (FinCommande.DO_Piece IN (SELECT DO_Piece FROM ACIBOIS.dbo.F_DOCLIGNE) or FinCommande.DO_Piece IN (SELECT DL_PieceBC FROM ACIBOIS.dbo.F_DOCLIGNE)) group by FinCommande.DO_NomCli ) as C ON D.DO_NomCli=C.DO_NomCli
order by d.DO_NomCli
si ca peut servir
select d.DO_NomCli,d.nbdevis,c.nbcdes,cast(round((cast(c.nbcdes as decimal(10,2))/cast(d.nbdevis as decimal(10,2))) * 100, 2)as decimal(10,2)) as TxTrsf from ( SELECT FinDevis.DO_NomCli, COUNT (DISTINCT FinDevis.do_piece) as nbdevis FROM FinDevis WHERE findevis.DO_Date BETWEEN '01/01/2012' AND '29/01/2014'
GROUP BY FinDevis.DO_NomCli ) as D
left outer join (
select FinCommande.DO_NomCli, COUNT (FinCommande.DO_Piece) as nbcdes from FinCommande where FinCommande.do_date between '01/01/2012' and '29/01/2014'
and (FinCommande.DO_Piece IN (SELECT DO_Piece FROM ACIBOIS.dbo.F_DOCLIGNE) or FinCommande.DO_Piece IN (SELECT DL_PieceBC FROM ACIBOIS.dbo.F_DOCLIGNE)) group by FinCommande.DO_NomCli ) as C ON D.DO_NomCli=C.DO_NomCli
order by d.DO_NomCli
si ca peut servir