Q:

Problema com condição IN no sub-select

Estou com o seguinte problema;
Estou tentando fazer uma pesquisa e incluir o valor do WHERE principal em um sub-select, porém o resultado sempre é informado como 0, sendo que há registros.
Parte da query que estou com dificuldades é esta:
SELECT 
(SELECT COUNT(*) AS 'Colaboradores' FROM SRA010 WHERE RA_FILIAL = sd3.D3_FILIAL
 AND (RA_SITFOLH NOT IN ('D', 'A') OR RA_DEMISSA  > CAST(YEAR(sd3.D3_EMISSAO) AS VARCHAR)+CAST(REPLICATE('0', 2 - LEN(MONTH(sd3.D3_EMISSAO))) + RTrim(MONTH(sd3.D3_EMISSAO)) AS VARCHAR)+'31')
 AND RA_CC IN (SELECT CTT_CUSTO FROM CTT010 WHERE sd3.D3_CC = CTT_CUSTO)) as Pessoas
FROM SD3010 AS sd3
WHERE sd3.D3_TM = '010'
AND sd3.D3_LOCAL IN ('01','02')
AND sd3.D3_FILIAL = '0301'
AND sd3.D3_CC in ('1350400', '1350403', '1350405', '1350408', '1350409', '1350410', '1350411', '1350412', '1350413', '1350414', '1350415', '1350416', '1350417', '1350418', '1350419', '1350420', '1350421', '1350422', '1350423', '1350424', '1350425', '1350426', '1350427', '1350428', '1350429', '1350430', '1350431', '1350432', '13604', '1360400', '1360401', '1360402', '1360499')
AND sd3.D_E_L_E_T_ <> '*'  
AND sd3.D3_EMISSAO between '20161001' and '20161031'
group by sd3.D3_EMISSAO, sd3.D3_TM, sd3.D3_FILIAL, sd3.D3_CC

Preciso que a condição do sd3.D3_CC no fim da query, no WHERE, vá para o WHERE no sd3.CC no subselect
Obs: Há mais subselects que não interferem neste informado, porém, informei apenas este para que possa ficar mais clara a compreensão.
Obs2: Outras condições no Where principal, como o campo  sd3.D3_FILIAL (na 1ª condição do subselect), funcionam corretamente.
Obs3: Essa query vai se transformar em uma view, q servirá como análise do BI, podendo ser alterada a opção sd3.D3_CC no filtro, ou seja, os valores do campo sd3.D3_CC não são fixos, estão na query apenas para simular os filtros do BI
Atualização: Retirando a condição AND RA_CC IN (SELECT CTT_CUSTO FROM CTT010 WHERE sd3.D3_CC = CTT_CUSTO) no subselect, ele exibe resultados, conforme imagem abaixo (1º Result com a condição citada acima, 2º Result sem a condição citada acima)

A:

Se é que entendi direito, o seu SubSelect esta fazendo um RA_CC IN (sd3.D3_CC)), isso vair ser verificado UM a UM para cada valor da sua consulta externar, ou seja para cada linha que o seu select fizer ele vai verificar o valor do campo D3_CC que certamente será um unico valor e não uma lista.
Altere sua consulta para;
SELECT 
(SELECT COUNT(*) AS 'Colaboradores' FROM SRA010 WHERE RA_FILIAL = sd3.D3_FILIAL
     AND (RA_SITFOLH NOT IN ('D', 'A') OR RA_DEMISSA  > CAST(YEAR(sd3.D3_EMISSAO) AS VARCHAR)+CAST(REPLICATE('0', 2 - LEN(MONTH(sd3.D3_EMISSAO))) + RTrim(MONTH(sd3.D3_EMISSAO)) AS VARCHAR)+'31')
     AND RA_CC IN ('1350400', '1350403', '1350405', '1350408', '1350409', '1350410', '1350411', '1350412', '1350413', '1350414', '1350415', '1350416', '1350417', '1350418', '1350419', '1350420', '1350421', '1350422', '1350423', '1350424', '1350425', '1350426', '1350427', '1350428', '1350429', '1350430', '1350431', '1350432', '13604', '1360400', '1360401', '1360402', '1360499')) as Pessoas
FROM SD3010 AS sd3

WHERE sd3.D3_TM = '010'
AND sd3.D3_LOCAL IN ('01','02')
AND sd3.D3_FILIAL = '0301'
AND sd3.D3_CC in ('1350400', '1350403', '1350405', '1350408', '1350409', '1350410', '1350411', '1350412', '1350413', '1350414', '1350415', '1350416', '1350417', '1350418', '1350419', '1350420', '1350421', '1350422', '1350423', '1350424', '1350425', '1350426', '1350427', '1350428', '1350429', '1350430', '1350431', '1350432', '13604', '1360400', '1360401', '1360402', '1360499')
AND sd3.D_E_L_E_T_ <> '*'  

AND sd3.D3_EMISSAO between '20161001' and '20161031'

group by sd3.D3_EMISSAO, sd3.D3_TM, sd3.D3_FILIAL, sd3.D3_CC

