Senhores boa tarde.
A solução utilizando o "select tusuarioccusto" funcionou perfeitamente, obrigado pela ajuda e atenção de todos. A solução completa ficou assim:
- Nucleus - Cadastrar relacionamento entre usuario e centro de custo;
- BIS - Criar os SQL's de "Orçado" e "Realizado" para inclusao na planilha.net;
- BIS - Criar a planilha (pode ser uma ja existente) e vincular os sql's;
- Nucleus (no meu caso) - Disponibilizar a planilha para os usuarios.
sql de orçamento:
SELECT CORC.ANO ,
SUM(CORC.VRMES1) AS 'JAN',
SUM(CORC.VRMES2) AS 'FEV',
SUM(CORC.VRMES3) AS 'MAR',
SUM(CORC.VRMES4) AS 'ABR',
SUM(CORC.VRMES5) AS 'MAI',
SUM(CORC.VRMES6) AS 'JUN',
SUM(CORC.VRMES7) AS 'JUL',
SUM(CORC.VRMES8) AS 'AGO',
SUM(CORC.VRMES9) AS 'SET',
SUM(CORC.VRMES10) AS 'OUT',
SUM(CORC.VRMES11) AS 'NOV',
SUM(CORC.VRMES12) AS 'DEZ',
SUM(CORC.VRMES1+CORC.VRMES2+CORC.VRMES3+CORC.VRMES4+CORC.VRMES5+CORC.VRMES6+
CORC.VRMES7+CORC.VRMES8+CORC.VRMES9+CORC.VRMES10+CORC.VRMES11+CORC.VRMES12) AS 'TOTAL'
FROM CORCAMENTO CORC (NOLOCK)
WHERE CORC.CODCONTA LIKE '4.%'
AND CORC.CODCOLIGADA = 1
AND CORC.ANO = :ANO_N
and exists (SELECT * FROM tusuarioccusto (nolock) WHERE CODUSUARIO IN ( SELECT DISTINCT USERNAME FROM GLOGIN (nolock) WHERE COMPUTERNAME =( select host_name ()))
and tusuarioccusto.codccusto = corc.codgerencial
and tusuarioccusto.CODCOLIGADA = corc.codcoligada)
GROUP BY CORC.ANO
ORDER BY CORC.ANO
SQL de Realizado:
SELECT YEAR(CRAT.DATA) AS 'ANO',
SUM(CASE WHEN MONTH(CRAT.DATA) = 1 THEN (CASE WHEN CRAT.VLRDEBITO > 0 THEN CRAT.VLRDEBITO ELSE (CRAT.VLRCREDITO*-1) END) ELSE 0 END) AS 'JAN',
SUM(CASE WHEN MONTH(CRAT.DATA) = 2 THEN (CASE WHEN CRAT.VLRDEBITO > 0 THEN CRAT.VLRDEBITO ELSE (CRAT.VLRCREDITO*-1) END) ELSE 0 END) AS 'FEV',
SUM(CASE WHEN MONTH(CRAT.DATA) = 3 THEN (CASE WHEN CRAT.VLRDEBITO > 0 THEN CRAT.VLRDEBITO ELSE (CRAT.VLRCREDITO*-1) END) ELSE 0 END) AS 'MAR',
SUM(CASE WHEN MONTH(CRAT.DATA) = 4 THEN (CASE WHEN CRAT.VLRDEBITO > 0 THEN CRAT.VLRDEBITO ELSE (CRAT.VLRCREDITO*-1) END) ELSE 0 END) AS 'ABR',
SUM(CASE WHEN MONTH(CRAT.DATA) = 5 THEN (CASE WHEN CRAT.VLRDEBITO > 0 THEN CRAT.VLRDEBITO ELSE (CRAT.VLRCREDITO*-1) END) ELSE 0 END) AS 'MAI',
SUM(CASE WHEN MONTH(CRAT.DATA) = 6 THEN (CASE WHEN CRAT.VLRDEBITO > 0 THEN CRAT.VLRDEBITO ELSE (CRAT.VLRCREDITO*-1) END) ELSE 0 END) AS 'JUN',
SUM(CASE WHEN MONTH(CRAT.DATA) = 7 THEN (CASE WHEN CRAT.VLRDEBITO > 0 THEN CRAT.VLRDEBITO ELSE (CRAT.VLRCREDITO*-1) END) ELSE 0 END) AS 'JUL',
SUM(CASE WHEN MONTH(CRAT.DATA) = 8 THEN (CASE WHEN CRAT.VLRDEBITO > 0 THEN CRAT.VLRDEBITO ELSE (CRAT.VLRCREDITO*-1) END) ELSE 0 END) AS 'AGO',
SUM(CASE WHEN MONTH(CRAT.DATA) = 9 THEN (CASE WHEN CRAT.VLRDEBITO > 0 THEN CRAT.VLRDEBITO ELSE (CRAT.VLRCREDITO*-1) END) ELSE 0 END) AS 'SET',
SUM(CASE WHEN MONTH(CRAT.DATA) = 10 THEN (CASE WHEN CRAT.VLRDEBITO > 0 THEN CRAT.VLRDEBITO ELSE (CRAT.VLRCREDITO*-1) END) ELSE 0 END) AS 'OUT',
SUM(CASE WHEN MONTH(CRAT.DATA) = 11 THEN (CASE WHEN CRAT.VLRDEBITO > 0 THEN CRAT.VLRDEBITO ELSE (CRAT.VLRCREDITO*-1) END) ELSE 0 END) AS 'NOV',
SUM(CASE WHEN MONTH(CRAT.DATA) = 12 THEN (CASE WHEN CRAT.VLRDEBITO > 0 THEN CRAT.VLRDEBITO ELSE (CRAT.VLRCREDITO*-1) END) ELSE 0 END) AS 'DEZ',
sum(CASE WHEN CRAT.VLRDEBITO > 0 THEN CRAT.VLRDEBITO ELSE (CRAT.VLRCREDITO*-1) END) AS 'TOTAL'
FROM CRATEIOLC CRAT (NOLOCK)
inner join cgerencia cg (nolock) on
cg.codcoligada = crat.codcoligada
and cg.codconta = crat.codgerencial
WHERE CRAT.CODCOLIGADA = 1
AND CRAT.CODCONTA LIKE '4.%'
AND YEAR(CRAT.DATA) = :ANO_N
and exists (SELECT * FROM tusuarioccusto (nolock) WHERE CODUSUARIO IN ( SELECT DISTINCT USERNAME FROM GLOGIN WHERE COMPUTERNAME =( select host_name ()))
and tusuarioccusto.codccusto = crat.codgerencial
and tusuarioccusto.CODCOLIGADA = crat.codcoligada)
GROUP BY YEAR(CRAT.DATA)
ORDER BY YEAR(CRAT.DATA)
Obrigado a todos.