I have executed with no problem the query in SQL but it does not work in Access
Case is not avaliable in Access right, so IIf must be used…
select
sum(case when date between '2012-05-01' AND '2012-06-01' then value else 0 end) as sum1,
sum(case when date between '2012-05-01' AND '2012-10-01' then value else 0 end) as sum2,
sum(case when situation like 'Urgent' then 1 else 0 end) as urgent,
sum(case when situation like 'Anual' then 1 else 0 end) as anual,
sum(1) as total
from mytable
Is there a better way of doing this?
Will this query work?
select
sum(IIf date between '2012-05-01' AND '2012-06-01',value,0) as sum1,
sum(IIf date between '2012-05-01' AND '2012-10-01',value,0) as sum2,
sum(IIf situation like 'Urgent',1,0 ) as urgent,
sum(IIf situation like 'Anual' ,1,0 ) as anual,
sum(1) as total
from mytable
You need parentheses for
IIf()as inIIf(expression, truepart, falsepart)Enclose
dateandvaluein square brackets because both are reserved words.Your
Likecomparisons didn’t include any pattern matching, so I substituted=instead.I assumed date is Date/Time data type, so enclosed the values with the
#delimiter.