Skip to content

Instantly share code, notes, and snippets.

@achvaicer
Created July 21, 2011 19:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save achvaicer/1097922 to your computer and use it in GitHub Desktop.
Save achvaicer/1097922 to your computer and use it in GitHub Desktop.
cobranca temp
if object_id('tempdb..#tempCobranca1') is not null
drop table #tempCobranca1
select
parte,
tipoIf,
grupo,
faixa,
modalidadeLiquidacao,
dataOperacao,
numDiasUteis,
tipoOperacao,
subTipoOperacao,
codigoIF,
cnpj,
contraparte,
funcionalidade,
diasCorridos,
valorRegistro,
valorNominal,
c_codigoIf,
quantidade,
c_guidTransacao
into
#tempCobranca1
from
(
select
map.nm_login as parte,
pv.c_tipoIFAgrupamento as tipoIf,
pv.c_grupoAgrupamento as grupo,
pv.c_faixa as faixa,
pv.c_modalidadeAgrupamento as modalidadeLiquidacao,
pv.c_dataOperacaoAgrupamento as dataOperacao,
pv.c_numDiasUteis as numDiasUteis,
pv.c_tipoOperacaoAgrupamento as tipoOperacao,
pv.c_subTipoOperacaoAgrupamento as subTipoOperacao,
pv.c_codigoIFAgrupamento as codigoIF,
pv.c_cnpjAgrupamento as cnpj,
pv.c_contraparteAgrupamento as contraparte,
cast(isnull(pv.c_funcionalidade, '0') as bit) as funcionalidade,
c_prazo as diasCorridos,
CAST(pv.c__valorRegistro AS DECIMAL(30,2)) as valorRegistro,
CAST(svc.c_valorNominal as DECIMAL(30,10)) as valorNominal,
pv.c_codigoIf,
CAST(ISNULL(pv.c_quantidade, 0) as DECIMAL(30,10)) as quantidade,
pv.c_guidTransacao
from
t_svc_operacoes svc inner join
t_batch batch on (batch.tx_batch = svc.c__CollectionID) inner join
t_acc_usage acc on (acc.tx_uid = svc.id_source_sess) inner join
t_account_mapper map on (acc.id_acc = map.id_acc) inner join
t_pv_operacoes pv on (acc.id_sess = pv.id_sess)
where
batch.tx_namespace = '%%ns%%' and batch.tx_status = 'C' and pv.c_tipoOperacaoAgrupamento <> 'PermanenciaDebentures'
union
select
map.nm_login as parte,
pv.c_tipoIFAgrupamento as tipoIf,
pv.c_grupoAgrupamento as grupo,
pv.c_faixa as faixa,
pv.c_modalidadeAgrupamento as modalidadeLiquidacao,
svc.c_dataOperacao as dataOperacao,
pv.c_numDiasUteis as numDiasUteis,
pv.c_tipoOperacaoAgrupamento as tipoOperacao,
pv.c_subTipoOperacaoAgrupamento as subTipoOperacao,
pv.c_codigoIFAgrupamento as codigoIF,
pv.c_cnpjAgrupamento as cnpj,
pv.c_contraparteAgrupamento as contraparte,
cast(isnull(pv.c_funcionalidade, '0') as bit) as funcionalidade,
c_prazo as diasCorridos,
CAST(pv.c__valorRegistro AS DECIMAL(30,2)) as valorRegistro,
CAST(svc.c_valorNominal as DECIMAL(30,10)) as valorNominal,
pv.c_codigoIf,
CAST(ISNULL(pv.c_quantidade, 0) as DECIMAL(30,10)),
pv.c_guidTransacao
from
t_svc_operacoes svc inner join
t_batch batch on (batch.tx_batch = svc.c__CollectionID) inner join
t_acc_usage acc on (acc.tx_uid = svc.id_source_sess) inner join
t_account_mapper map on (acc.id_acc = map.id_acc) inner join
t_pv_operacoes pv on (acc.id_sess = pv.id_sess) inner join
(
select pv2.c_parte as parte, pv2.c_cnpjAgrupamento as cnpj, pv2.c_codigoIF as codigoIF, MAX(svc2.c_dataOperacao) as dataOperacao
from
t_svc_operacoes svc2 inner join
t_batch batch2 on (batch2.tx_batch = svc2.c__CollectionID) inner join
t_acc_usage acc2 on (acc2.tx_uid = svc2.id_source_sess) inner join
t_account_mapper map2 on (acc2.id_acc = map2.id_acc) inner join
t_pv_operacoes pv2 on (acc2.id_sess = pv2.id_sess)
where
batch2.tx_namespace = '%%ns%%' and batch2.tx_status = 'C' and pv2.c_tipoOperacaoAgrupamento = 'PermanenciaDebentures'
group by pv2.c_parte,pv2.c_cnpjAgrupamento, pv2.c_codigoIF
) as maxdata on (maxdata.parte = pv.c_parte and maxdata.cnpj = pv.c_cnpjAgrupamento and maxdata.codigoIF = pv.c_codigoIF)
where
batch.tx_namespace = '%%ns%%' and batch.tx_status = 'C' and pv.c_tipoOperacaoAgrupamento = 'PermanenciaDebentures'
) as t1
select
parte,
tipoIf,
grupo,
faixa,
modalidadeLiquidacao,
dataOperacao,
numDiasUteis,
tipoOperacao,
subTipoOperacao,
codigoIF,
cnpj,
contraparte,
funcionalidade,
sum(diasCorridos) as diasCorridos,
(CASE tipoOperacao
WHEN 'PermanenciaDebentures' THEN avg(quantidade) * valorNominal
ELSE sum(valorRegistro)
END) as somaValorFinanceiro,
CAST((CASE tipoOperacao
WHEN 'Custodia' THEN count (distinct c_codigoIf)
ELSE count(1)
END) as VARCHAR) as quantidade,
sum(quantidade) as totalQuantidade
from
#tempCobranca1
group by
parte,
tipoIf,
grupo,
faixa,
modalidadeLiquidacao,
dataOperacao,
numDiasUteis,
tipoOperacao,
subTipoOperacao,
codigoIF,
cnpj,
contraparte,
funcionalidade,
c_guidTransacao
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment