Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Counting with IIF()
Message
General information
Forum:
Visual FoxPro
Category:
Other
Environment versions
Visual FoxPro:
VFP 9 SP2
OS:
Windows 10
Network:
Windows 2008 Server
Database:
MS SQL Server
Application:
Web
Miscellaneous
Thread ID:
01625867
Message ID:
01625870
Views:
48
>>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.
"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
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform