patricknaka / Nova

Versionamento Código SQL
2 stars 3 forks source link

Entendimento Filtro View #350

Closed marcusmsv closed 9 years ago

marcusmsv commented 9 years ago

Fabio,

Preciso de uma ajuda para interpretar os dados da query abaixo.

Estamos avalidando a possibilidade de extrair os dados no nosso ambiente carregados pela VW_FAT_FATURAMENTO, e para isso teremos que entender se a query abaixo é equivalente na questão de dados.

SELECT 201 CD_CIA, (SELECT tcemm030.t$euca FROM ttcemm124201 tcemm124, ttcemm030201 tcemm030 WHERE tcemm124.t$cwoc=cisli940.t$cofc$l AND tcemm030.t$eunt=tcemm124.t$grid AND tcemm124.t$loco=201 AND rownum=1) CD_FILIAL, cisli940.t$docn$l NR_NF, cisli940.t$seri$l NR_SERIE_NF, cisli940.t$fdty$l CD_TIPO_NF, CAST((FROM_TZ(CAST(TO_CHAR(cisli940.t$date$l, 'DD-MON-YYYY HH:MI:SS AM') AS TIMESTAMP), 'GMT') AT time zone sessiontimezone) AS DATE) DT_EMISSAO_NF, entr.t$pecl$c NR_PEDIDO, TO_CHAR(entr.t$entr$c) NR_ENTREGA, --#FAF.098.n entr.t$orno$c NR_ORDEM, cisli940.t$gamt$l VL_PRODUTO, cisli940.t$fght$l VL_FRETE, cisli940.t$insr$l VL_SEGURO, cisli940.t$gexp$l VL_DESPESA, cisli940.t$amnt$l VL_TOTAL_NF, CASE WHEN cisli940.t$fdty$l=15 then (select distinct a.t$docn$l from tcisli940201 a, tcisli941201 b where b.t$fire$l=cisli940.t$fire$l and a.t$fire$l=b.t$refr$l and rownum=1) else 0 end NR_NF_FATURA, CASE WHEN cisli940.t$fdty$l=15 then (select distinct a.t$seri$l from tcisli940201 a, tcisli941201 b where b.t$fire$l=cisli940.t$fire$l and a.t$fire$l=b.t$refr$l and rownum=1) else ' ' end NR_SERIE_NF_FATURA, CASE WHEN cisli940.t$fdty$l=16 then (select distinct a.t$docn$l from tcisli940201 a, tcisli941201 b where b.t$fire$l=cisli940.t$fire$l and a.t$fire$l=b.t$refr$l and rownum=1) else 0 end NR_NF_REMESSA, CASE WHEN cisli940.t$fdty$l=16 then (select distinct a.t$seri$l from tcisli940201 a, tcisli941201 b where b.t$fire$l=cisli940.t$fire$l and a.t$fire$l=b.t$refr$l and rownum=1) else ' ' end NR_SERIE_NF_REMESSA, cisli940.t$stat$l CD_SITUACAO_NF, cisli940.t$amfi$l VL_DESPESA_FINANCEIRA, (SELECT SUM(znsls401.t$vldi$c) FROM tznsls401201 znsls401, tcisli245201 cisli245 WHERE cisli245.t$slso=znsls401.t$orno$c AND cisli245.t$pono=znsls401.t$pono$c AND cisli245.t$fire$l=cisli940.t$fire$l) VL_DESCONTO_INCONDICIONAL, entr.t$uneg$c CD_UNIDADE_NEGOCIO, --#FAF.098.n cisli940.t$fire$l NR_REFERENCIA_FISCAL, --#FAF.109.n cisli940.t$nfes$l CD_STATUS_SEFAZ FROM tcisli940201 cisli940 LEFT JOIN (SELECT DISTINCT znsls401.t$entr$c, cisli245.t$fire$l, znsls401.t$pecl$c , znsls401.t$orno$c, znsls401.t$uneg$c FROM tznsls401201 znsls401 , tcisli245201 cisli245 WHERE cisli245.t$slso=znsls401.t$orno$c AND cisli245.t$pono=znsls401.t$pono$c) entr ON entr.t$fire$l=cisli940.t$fire$l, ttcemm124201 tcemm124, ttcemm030201 tcemm030 WHERE tcemm124.t$loco=201 AND tcemm124.t$dtyp=1 AND tcemm124.t$cwoc=cisli940.t$cofc$l AND tcemm030.t$eunt=tcemm124.t$grid and entr.t$entr$c is not null and cisli940.t$date$l >= sysdate-2 and cisli940.t$date$l < sysdate and cisli940.t$nfes$l in (2,5) and cisli940.t$stat$l in (6,5) and cisli940.t$fdty$l = 1

Poderia nos ajudar?

Obrigado.

fabioInfor commented 9 years ago

Marcus,

Veja algumas considerações abaixo:

1 -Na View VW_FAT_Faturamento não temos o campo “Data de emissão” (campo cisli940.t$date$l), seria necessário incluir esta informação para contemplar o filtro abaixo:

and cisli940.t$date$l >= sysdate-2 and cisli940.t$date$l < sysdate

2- O filtro abaixo pode alterado para usar a query VW_FAT_Faturamento relacinando a culuna CD_STATUS_SEFAZ

Ao invés de “cisli940.t$nfes$l in (2,5)” ficaria CD_STATUS_SEFAZ in (2,5)

3 - Para o filtro “cisli940.t$stat$l in (6,5)” não é necessário nenhuma alteração pois está com os mesmos valores na VW_FAT_Faturamento

4- O filtro abaixo pode alterado para usar a query VW_FAT_Faturamento relacinando a culuna CD_TIPO_NF

Ao invés de “cisli940.t$fdty$l = 1” ficaria “CD_TIPO_NF=1”

5 - Não existe na query VW_FAT_Faturamento a coluna DT_EMISSAO_NF

6 - A query VW_FAT_Faturamento tem ocódigo do item, seria necessário agrupar pois esta query mostra o total por referência

marcusmsv commented 9 years ago

Resolvido.

marcusmsv commented 9 years ago

Fabio,

Podemos avaliar esta query com dados de alguma view que ja temos?

SELECT 201 CD_CIA, (SELECT tcemm030.t$euca FROM ttcemm124201 tcemm124, ttcemm030201 tcemm030 WHERE tcemm124.t$cwoc=cisli940.t$cofc$l AND tcemm030.t$eunt=tcemm124.t$grid AND tcemm124.t$loco=201 AND rownum=1) CD_FILIAL, cisli940.t$docn$l NR_NF, cisli940.t$seri$l NR_SERIE_NF, cisli940.t$fdty$l CD_TIPO_NF, CAST((FROM_TZ(CAST(TO_CHAR(cisli940.t$date$l, 'DD-MON-YYYY HH:MI:SS AM') AS TIMESTAMP), 'GMT') AT time zone sessiontimezone) AS DATE) DT_EMISSAO_NF, entr.t$pecl$c NR_PEDIDO, TO_CHAR(entr.t$entr$c) NR_ENTREGA, --#FAF.098.n entr.t$orno$c NR_ORDEM, cisli940.t$gamt$l VL_PRODUTO, cisli940.t$fght$l VL_FRETE, cisli940.t$insr$l VL_SEGURO, cisli940.t$gexp$l VL_DESPESA, cisli940.t$amnt$l VL_TOTAL_NF, CASE WHEN cisli940.t$fdty$l=15 then (select distinct a.t$docn$l from tcisli940201 a, tcisli941201 b where b.t$fire$l=cisli940.t$fire$l and a.t$fire$l=b.t$refr$l and rownum=1) else 0 end NR_NF_FATURA, CASE WHEN cisli940.t$fdty$l=15 then (select distinct a.t$seri$l from tcisli940201 a, tcisli941201 b where b.t$fire$l=cisli940.t$fire$l and a.t$fire$l=b.t$refr$l and rownum=1) else ' ' end NR_SERIE_NF_FATURA, CASE WHEN cisli940.t$fdty$l=16 then (select distinct a.t$docn$l from tcisli940201 a, tcisli941201 b where b.t$fire$l=cisli940.t$fire$l and a.t$fire$l=b.t$refr$l and rownum=1) else 0 end NR_NF_REMESSA, CASE WHEN cisli940.t$fdty$l=16 then (select distinct a.t$seri$l from tcisli940201 a, tcisli941201 b where b.t$fire$l=cisli940.t$fire$l and a.t$fire$l=b.t$refr$l and rownum=1) else ' ' end NR_SERIE_NF_REMESSA, cisli940.t$stat$l CD_SITUACAO_NF, cisli940.t$amfi$l VL_DESPESA_FINANCEIRA, (SELECT SUM(znsls401.t$vldi$c) FROM tznsls401201 znsls401, tcisli245201 cisli245 WHERE cisli245.t$slso=znsls401.t$orno$c AND cisli245.t$pono=znsls401.t$pono$c AND cisli245.t$fire$l=cisli940.t$fire$l) VL_DESCONTO_INCONDICIONAL, entr.t$uneg$c CD_UNIDADE_NEGOCIO, --#FAF.098.n cisli940.t$fire$l NR_REFERENCIA_FISCAL, --#FAF.109.n cisli940.t$nfes$l CD_STATUS_SEFAZ, cast('fds' as varchar(20)) as filtro FROM tcisli940201 cisli940 LEFT JOIN (SELECT DISTINCT znsls401.t$entr$c, cisli245.t$fire$l, znsls401.t$pecl$c , znsls401.t$orno$c, znsls401.t$uneg$c FROM tznsls401201 znsls401 , tcisli245201 cisli245 WHERE cisli245.t$slso=znsls401.t$orno$c AND cisli245.t$pono=znsls401.t$pono$c) entr ON entr.t$fire$l=cisli940.t$fire$l, ttcemm124201 tcemm124, ttcemm030201 tcemm030 WHERE tcemm124.t$loco=201 AND tcemm124.t$dtyp=1 AND tcemm124.t$cwoc=cisli940.t$cofc$l AND tcemm030.t$eunt=tcemm124.t$grid and entr.t$entr$c is not null and cisli940.t$date$l >= sysdate-2 and cisli940.t$date$l < sysdate and cisli940.t$nfes$l in (2,5) and cisli940.t$stat$l in (6,5) and cisli940.t$fdty$l = 1

marcusmsv commented 9 years ago

Resolvido