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)

lundi 28 janvier 2008 à 17:04:29 | CASE + IF error

catzguy

Membre Club
 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

Membre Club
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


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,546 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.