Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
SQL Conversion
Message
De
29/09/2011 14:12:06
 
 
Information générale
Forum:
Microsoft SQL Server
Catégorie:
Syntaxe SQL
Titre:
Divers
Thread ID:
01525186
Message ID:
01525190
Vues:
66
Thanks Sergy. You are amazing! That gets me to here.
select crsB.category, jul, [fisyear]
from (select distinct category from [RTA-Revenues]) as crsA 
inner join (
select [fisYear], [category],
CASE WHEN month([receiveddate])=7 THEN sum(AMOUNT) ELSE CAST(0 AS numeric(12,2)) END as Jul
from [rta-revenues]
group by receiveddate, FISYEAR, CATEGORY) as crsB
on crsA.CATEGORY = crsB.CATEGORY
order by FISYEAR
Note that sqlserver is insisting on having receiveddate in the group by clause. Something I did not have before. As above it runs but produces multiple rows for each fisyear/category combination. Something I do not want.


>You can replace IIF with CASE T-SQL function
>
>iif(month(receiveddate)=7,amount,000000000000.00)
>(CASE WHEN month(receiveddate)=7 THEN AMOUNT ELSE CAST(0 AS numeric(12,2) END)
>
>
>Also check PIVOT type of queries
>
>
>>Hello all, I am porting a VFP app to NET and SQLServer. I have a fairly complex SQL SELECT that I need to rewrite to be compatible with SQLServer 2008. It includes some lines like this:
>>
>>select ;
>>	sum(iif(month(receiveddate)=7,amount,000000000000.00)) as jul, ;
>>	sum(iif(month(receiveddate)=8,amount,000000000000.00)) as aug, ;
>>	sum(iif(month(receiveddate)=9,amount,000000000000.00)) as sep, ;
>>
>>So far I have not been able to figure out how to work the IIF statements into the new code. Can someone give me some ideas here?
>>Thanks
>>
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform