Número + pesquisa de acesso IIF
a saída final será uma folha excel onde as divisões da empresa estarão na coluna A, na categoria A na coluna B, na categoria B na coluna e na categoria C na coluna D.
pensei que um IIF()
aninhado num COUNT()
seria fazer o trabalho, mas na verdade conta o número total de empregados em vez de dar a desagregação por categoria.
SELECT
tblAssssDB.[Division:],
COUNT( IIF( [Category] = "A", 1, 0 ) ) AS Count_A,
COUNT( IIF( [Category] = "B", 1, 0 ) ) AS Count_B,
COUNT( IIF( [ET Outcome] = "C", 1, 0 ) ) AS Count_C
FROM
tblAssssDB
GROUP BY
tblAssssDB.[Division:];
o meu objectivo é codificar uma única declaração sql e evitar escrever sub-consultas a fim de calcular os valores para cada divisão.
4 answers
Count
conta todos os valores não nulos ... então você está contando 1 para cada linha independentemente do valor [Category]
.
Se quiseres ficar com Count
...
Count(IIf([Category]="A",1,Null))
Caso contrário, mude para Sum
...
Sum(IIf([Category]="A",1,0))
Utilizar GROUP BY
em vez de IIF
. Tenta isto.
SELECT [Division:], [Category], Count([Category]) AS Category_Count
FROM tblAssssDB
GROUP BY [Division:], [Category];
Tenta esta Contagem:
Count(IIf([Field1]="N",1))+Count(IIf([Field2]="N",1)) ...
Agrupei a minha expressão qry e colocar sob este campo de contagem que criei. Funcionou comigo.
Select count(iif(fieldname='a',1,null)) as asde
from [table name]
where .....