begin process at 2010 03 20 10:39:51
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

SQL Server, MSDE, SQL Express

 > 

Procédures Stockées

 > 

CASE + IF error


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

CASE + IF error

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ée 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...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,296 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales