FILTRO CNPJ ERRO SQL

Estou fazendo um filtro assim no login quando usuario se loga sistema é criado variavel [w_cnpj] por no cadastro usuarios tenho esta informação qual cnpj ele pertence este usuario omelhor a qual empresa ele pertence.

então fica assin no onvalidate do login

[W_cnpj] = “”;
[W_cnpj] = {rs[0][7]};

No formulário da consulta aonde usuário vai consultar todos serviços da sua empresa, ele tem a opção por data do filtro, e no SQL eu pego variavel cnpj e filtro internamente por cnpj para que usuario não consulte serviços de outra empresa por que em cada registro de serviço tem a informação do cnpj da empresa pertence aquele serviço isto atraves de um view criada no sql

veja a selecte desta consulta

SELECT
centro_custo,
NOS,
Data_Operacao,
Minuta,
Danfe,
Agendado,
Solicitante,
AutoCarga,
Origem,
Destino,
Saida_Base,
Inicio,
Termino,
Chegada_Base,
Horas_Operacao,
Franquia,
Horas_Execedente,
Valor_Por_Hora,
Valor_Exedente,
Km_Inicio,
Km_Termino,
Km_Total,
Km_Franquia,
Km_Exedente,
Valor_Por_Km,
Valor_Km_Excedente,
Pedagio,
Valor_Escolta,
Valor_Total,
Veiculo_Escolta,
Equipe,
CodCliente,
Cliente,
cnpj,
Cod_Tabela,
Tabela_preco,
Cod_Radio,
ID_Radio
FROM
dbo.Faturamento
WHERE cnpj = [W_cnpj]
ORDER BY Data_Operacao

O meu problema é o seguinte erro:

ERRO
Erro ao acessar o banco de dados
[Microsoft][ODBC SQL Server Driver][SQL Server]Arithmetic overflow error converting varchar to data type numeric.
select count(*), sum(Valor_Total) as sum_valor_total from dbo.Faturamento where CAST(cnpj AS VARCHAR(14)) = 04887927001207

QUANDO FAÇO CAST NA VARIEL NÃO DA O ERRO MAS TAMBÉM NÃO ACHA REGISTRO NENHUM

AGRADEÇO MUITO A AJUDA…

Experimente colocar no teu WHERE assim:

WHERE cnpj = ‘[W_cnpj]’