Exemplos de queries para retorno de regras da Reforma Tributária


Exemplo 1

Retorna regras “aprovadas” buscando novidades desde “YYYYMMDDHHmmss” (exemplo: 20170203112300 para retorno de regras desde 03/02/2017 às 11:23:00)

 

SELECT *

FROM TBL_CENARIO_MATERIAL_REFORMA CM (NOLOCK)

INNER JOIN TBL_CENARIO C (NOLOCK) ON CM.CENARIO_CODI = C.CENARIO_CODI

LEFT JOIN TBL_MATERIAL M (NOLOCK) ON CM.MAT_CODI = M.MAT_CODI

LEFT JOIN TBL_IMP_IBS I1 (NOLOCK) ON CM.IMP_IBS = IMP_CODI AND I.IMP_STATUS = 'A

LEFT JOIN TBL_IBS IBS (NOLOCK) ON I1.IMP_CODI = IBS.IMP_CODI

LEFT JOIN TBL_IMP_IBSMUN I2 (NOLOCK) ON CM.IMP_IBSMUN = I2.IMP_CODI AND I2.IMP_STATUS ='A'

LEFT JOIN TBL_IBSMUN IBSMUN (NOLOCK) ON I2.IMP_CODI = IBSMUN.IMP_CODI

LEFT JOIN TBL_IMP_CBS I3 (NOLOCK) ON CM.IMP_CBS = I3.IMP_CODI AND I3.IMP_STATUS = 'A'

LEFT JOIN TBL_CBS CBS (NOLOCK) ON I3.IMP_CODI = CBS.IMP_CODI

WHERE CM.CMA_ATIV = 1 AND (CM.IMP_IBS IS NOT NULL OR CM.IMP_IBSMUN IS NOT NULL OR CM.IMP_CBS IS NOT NULL) AND CM.CMA_PONTEIRO= ' YYYYMMDDHHmmss'

Exemplo 2

Query 2: Consulta pontual de produto retornando as regras mais recentes aprovadas.

 

SELECT *

FROM TBL_CENARIO_MATERIAL_REFORMA CM (NOLOCK)

INNER JOIN TBL_CENARIO C (NOLOCK) ON CM.CENARIO_CODI = C.CENARIO_CODI

LEFT JOIN TBL_MATERIAL M (NOLOCK) ON CM.MAT_CODI = M.MAT_CODI

LEFT JOIN TBL_IMP_IBS I1 (NOLOCK) ON CM.IMP_IBS = IMP_CODI AND I.IMP_STATUS = 'A

LEFT JOIN TBL_IBS IBS (NOLOCK) ON I1.IMP_CODI = IBS.IMP_CODI

LEFT JOIN TBL_IMP_IBSMUN I2 (NOLOCK) ON CM.IMP_IBSMUN = I2.IMP_CODI AND I2.IMP_STATUS ='A'

LEFT JOIN TBL_IBSMUN IBSMUN (NOLOCK) ON I2.IMP_CODI = IBSMUN.IMP_CODI

LEFT JOIN TBL_IMP_CBS I3 (NOLOCK) ON CM.IMP_CBS = I3.IMP_CODI AND I3.IMP_STATUS = 'A'

LEFT JOIN TBL_CBS CBS (NOLOCK) ON I3.IMP_CODI = CBS.IMP_CODI

WHERE CM.CMA_ATIV = 1 AND (CM.IMP_IBS IS NOT NULL OR CM.IMP_IBSMUN IS NOT NULL OR CM.IMP_CBS IS NOT NULL) AND M.COD_PROD = 'CODIGOPRODUTO'

Exemplo 3

Consulta pontual de produto retornando as regras mais recentes pendentes do produto.

 

SELECT *

FROM TBL_CENARIO_MATERIAL_REFORMA CM (NOLOCK)

INNER JOIN TBL_CENARIO C (NOLOCK) ON CM.CENARIO_CODI = C.CENARIO_CODI

LEFT JOIN TBL_MATERIAL M (NOLOCK) ON CM.MAT_CODI = M.MAT_CODI

LEFT JOIN TBL_IMP_IBS I1 (NOLOCK) ON CM.CMA_CODI = I1.CMA_CODI AND CODI AND I1.IMP_STATUS = 'P' AND I1.IMP_ATIV = 1

LEFT JOIN TBL_IBS IBS (NOLOCK) ON I1.IMP_CODI = IBS.IMP_CODI

LEFT JOIN TBL_IMP_IBSMUN I2 (NOLOCK) ON CM.CMA_CODI = I2.CMA_CODI AND I2.IMP_STATUS = 'P' AND I2.IMP_ATIV = 1

LEFT JOIN TBL_IBSMUN IBSMUN (NOLOCK) ON I2.IMP_CODI = IBSMUN.IMP_CODI

LEFT JOIN TBL_IMP_CBS I3 (NOLOCK) ON CM.CMA_CODI = I3.CMA_CODI AND I3.IMP_STATUS = 'P' AND I3.IMP_ATIV = 1

LEFT JOIN TBL_CBS CBS (NOLOCK) ON I3.IMP_CODI = CBS.IMP_CODI

WHERE CM.CMA_ATIV = 1 AND M.COD_PROD = 'CODIGOPRODUTO'

 

Obs.: Os campos imp_ibs I1, imp_ibsmun I2 e imp_cbs I3 da tabela tbl_cenario_material_reforma, guardam o código do tributo mais recente que você aprovou ou rejeitou, então eles são utilizados para retorno da query de aprovados ou rejeitados.