Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Counting with IIF()
Message
Information générale
Forum:
Visual FoxPro
Catégorie:
Autre
Versions des environnements
Visual FoxPro:
VFP 9 SP2
OS:
Windows 10
Network:
Windows 2008 Server
Database:
MS SQL Server
Application:
Web
Divers
Thread ID:
01625867
Message ID:
01625873
Vues:
35
>>>>Hi,
>>>>
>>>>When I do the following SQL Select with SQL Server I get the expected results:
>>>>
>>>>SELECT employee, COUNT( case when type= '0' then 1 else null end ) as COUNT_0, COUNT( case when type= '1' then 1 else null end ) as 
>>>>COUNT_1 FROM MyTable GROUP BY employee
>>>>
>>>>
>>>>But when I do the following in VFP, I don't get the expected results:
>>>>
>>>>SELECT employee, COUNT( IIF( type= '0', 1, 0 ) ) as COUNT_0, COUNT( IIF( type = '1',1,0)) as COUNT_1 FROM MyTable WHERE 
>>>>GROUP BY employee
>>>>
>>>>
>>>>In VFP expression all records are counted. How do I make VFP SQL Select work as the SQL Server?
>>>
>>>That is because you didn't use the same as in SQL Server:
>>>
>>>COUNT( IIF( type= '0', 1, NULL ))
>>>
>>>NULL not zero :-)
>>>
>>>But I prefer SUM anyway (don't know why, have no logical explanations :-))
>>>
>>>SUM(IIF( type= '0', 1, 0))
>>>
>>
>>I did try replacing 0 with NULL but I was getting an error. But your approach with SUM() should work. Thank you very much.
>
>
>For me this is a BUG, you should case the result:
>
>CAST(COUNT(IIF( type= '0',1,NULL)) as int) as COUNT_0
>
I see that CAST() resolves the issue with NULL. I will use the SUM() though. Thank you.
"The creative process is nothing but a series of crises." Isaac Bashevis Singer
"My experience is that as soon as people are old enough to know better, they don't know anything at all." Oscar Wilde
"If a nation values anything more than freedom, it will lose its freedom; and the irony of it is that if it is comfort or money that it values more, it will lose that too." W.Somerset Maugham
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform