|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : CASE + IF error [ SQL Server, MSDE, SQL Express / Procédures Stockées ] (catzguy)
Informations & options pour cette discussion
lundi 28 janvier 2008 à 17:04:29 |
CASE + IF error

catzguy
|
 CatzGuy Voici une requete que je doit executer SELECT Time_Key , LigneCBRegroupement , CASE WHEN LigneCBRegroupement = 152 THEN BEGIN IF @TotalRC591 <= 0.00 BEGIN -1 * SUM(AmountEur) + ABS(@TotalRC591) END ELSE -1 * SUM(AmountEur) END WHEN LigneCBRegroupement = 137 THEN SUM(ABS(AmountEur)) WHEN LigneCBRegroupement = 164 THEN SUM(ABS(AmountEur)) WHEN LigneCBRegroupement = 165 THEN SUM(ABS(AmountEur)) ELSE SUM((AmountEur)) END AS Montant_Ligne_CB , ponderation , CASE WHEN LigneCBRegroupement = 152 THEN BEGIN IF @TotalRC591 <= 0.00 BEGIN
CONVERT(DECIMAL(19,2),((CONVERT(DECIMAL(19,2),ponderation)/100)*(-1 *
SUM(AmountEur) + ABS(@TotalRC591))) END ELSE CONVERT(DECIMAL(19,2),((CONVERT(DECIMAL(19,2),ponderation)/100)*( -1 * SUM((AmountEur))))) END
WHEN LigneCBRegroupement = 137 THEN
CONVERT(DECIMAL(19,2),((CONVERT(DECIMAL(19,2),ponderation)/100)*(
SUM(ABS(AmountEur))))) WHEN
LigneCBRegroupement = 164 THEN
CONVERT(DECIMAL(19,2),((CONVERT(DECIMAL(19,2),ponderation)/100)*(
SUM(ABS(AmountEur))))) WHEN
LigneCBRegroupement = 165 THEN
CONVERT(DECIMAL(19,2),((CONVERT(DECIMAL(19,2),ponderation)/100)*(
SUM(ABS(AmountEur))))) ELSE CONVERT(DECIMAL(19,2),((CONVERT(DECIMAL(19,2),ponderation)/100)*(SUM((AmountEur))))) END AS ResultatPondere , AS ResultatPondere ,*/ Ligne_Total FROM dbo.DATABASE WHERE dbo.DATABASE.Time_Key = @MaxTimeKey GROUP BY Time_Key , LigneCBRegroupement , ponderation , Ligne_Total ORDER BY Time_Key , LigneCBRegroupement
Le probleme se situe au nivieau de l'imbrication du CASE avec un IF Quelqu'un peut-il ne dire so cela m...    Merci
|
|
|
mardi 29 janvier 2008 à 11:53:59 |
Re : CASE + IF error

catzguy
|
Pour info et ceux que cela peux interesser, il suffi à la place du IF de poser un second CASE imbriqué sur la condition seconde ex: CASE WHEN LigneCBRegroupement = 152 THEN CASE WHEN @TotalRC591 <= 0.00 THEN -1 * SUM(AmountEur) + ABS(@TotalRC591) ELSE -1 * SUM(AmountEur) END WHEN LigneCBRegroupement = 137 THEN SUM(ABS(AmountEur)) WHEN LigneCBRegroupement = 164 THEN SUM(ABS(AmountEur)) WHEN LigneCBRegroupement = 165 THEN SUM(ABS(AmountEur)) ELSE SUM((AmountEur)) END AS Montant_Ligne_CB , CatzGuy
|
|
|
Cette discussion est classé dans : decimal, sum, convert, amounteur, lignecbregroupement
Répondre à ce message
Sujets en rapport avec ce message
Bien malin celui qui réussi cette requete (select,sum,*,group by,date,jointure ) [ par Rjoe ]
Extrait du schéma relationnelle ou se trouve les tables et les relations en questions :premiere requete
Le maximum ou le minimum d'une somme SUM() [ par wallole_ofm ]
Bonjour,Je doit maintenir une application de gestion de stocks sous access 2 .Avec cette requête, je calcul la somme d'un produit par emplacement, il
decimal (12,2) ca veut dire quoi? [ par deubal ]
bonjour,debutante en sql j'ai besoin d'aide:voila dans une des tables que j'utilise, un des champs est declaré en decimal (12,2). Je comprends bien qu
Group by d'un Group by ??? [ par vincentstryckmans ]
Bonjour,Ma requête est la suivante :SELECT SUM((IDENTIF_OFFICIEL.MINHKV) * RESP_OFFICIEL.POURCENT / 100) AS SUM_M<f
CONVERT et formatage de données INT comment faire ? [ par smoitry ]
Bonjour à tous !Actuellement je fais une requête du style :SELECT CONVERT(varchar, dbo.Table.monchampint) FROM TableSachant que monchampint est de typ
Modif colonne MONEY en decimal [ par caligreg ]
Bonjour,j'aimerais modifier le type de colonne d'une table pour la passer de type MONEY en type DECIMAL pour pouvoir saisir plus de 2 chiffres aprés l
Nombre avec 6 chiffres [ par dp_favresa ]
Bonjour,Dans une requête avec jointure un des champs à tester est la concaténation de plusieurs autres.Exemple : 0120060921000345Soit : 01 code usine
Requête avec group by [ par cudenetf ]
bonjour,j'utilise sqlexpress 2005 et je cherche afair eune requete un peu compliquée:je voudrais savoir s'il est possible de faire une requete sur 2
sum resultat [ par beny100 ]
bonsoir,je n'arrive pas a recuperer le resultat de mon calcul effectuer sous sqlvoici mon code:x= Int32.Parse(Reader1.GetValue(0).ToString());k =
Compter tous les 10 enregistrements ??? [ par fabiano13 ]
Comment compter tous les 10 enregistrements ?Du genre :SQLHits = "SELECT Sum(Hits) As SumHits FROM table WHERE Data>=#" & Ilya7mois & "# GROUP / 10 BY
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|