Jump to content
jsousa

Cubo Orçado X Realizado

Recommended Posts

Pessoal,

Boa tarde!

Criei um Cubo do Orçado X Realizado que traz as informações do orçamento cadastrado no nuclues e de seus Lançamentos x os lançamentos que caem no Fluxos, porém estou necessitando colocar Saldo que seria o valor orçado do Nuclues menos o que foi realizado no Fluxos, porém não estou conseguindo.

Segue a consulta abaixo para que tiver alguma ideia de como me ajudar.

SELECT

TORCAMENTO.CODCOLIGADA AS COLIGADA,

(CASE WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 1 THEN '01 - JAN'

WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 2 THEN '02 - FEV'

WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 3 THEN '03 - MAR'

WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 4 THEN '04 - ABR'

WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 5 THEN '05 - MAI'

WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 6 THEN '06 - JUN'

WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 7 THEN '07 - JUL'

WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 8 THEN '08 - AGO'

WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 9 THEN '09 - SET'

WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 10 THEN '10 - OUT'

WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 11 THEN '11 - NOV'

WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 12 THEN '12 - DEZ'

END) MES,

/*DATEPART (MONTH,TITMPERIODOORCAMENTO.DATAFIM) AS MES,*/

DATEPART (YEAR,TITMPERIODOORCAMENTO.DATAFIM) AS ANO,

TORCAMENTO.CODCCUSTO + ' - '+ GCCUSTO.NOME AS CENTRO_CUSTO,

TORCAMENTO.CODTBORCAMENTO + ' - ' + TTBORCAMENTO.DESCRICAO AS CLASSIFICACAO,

0 AS NF,

TITMORCAMENTO.VALOREXCEDENTE AS EXCEDENTE,

TITMORCAMENTO.VALORORCADO AS ORCADO,

/*(TITMORCAMENTO.VALORORCADO - FLANRATCCU.VALOR) AS SALDO,*/

0 AS REALIZADO

FROM

TORCAMENTO(NOLOCK),TITMORCAMENTO(NOLOCK),TITMPERIODOORCAMENTO(NOLOCK),GCCUSTO(NOLOCK),TTBORCAMENTO(NOLOCK)/*, FLANRATCCU(NOLOCK)*/

WHERE

TORCAMENTO.CODCOLIGADA=TITMPERIODOORCAMENTO.CODCOLIGADA AND

TORCAMENTO.CODCOLIGADA=TITMORCAMENTO.CODCOLIGADA AND

TITMPERIODOORCAMENTO.CODCOLIGADA=TITMORCAMENTO.CODCOLIGADA AND

TORCAMENTO.IDORCAMENTO=TITMORCAMENTO.IDORCAMENTO AND

TORCAMENTO.IDPERIODO= TITMPERIODOORCAMENTO.IDPERIODO AND

TORCAMENTO.IDPERIODO=TITMPERIODOORCAMENTO.IDPERIODO AND

TITMPERIODOORCAMENTO.IDPERIODO=TITMORCAMENTO.IDPERIODO AND

TITMORCAMENTO.IDITMPERIODO=TITMPERIODOORCAMENTO.IDITMPERIODO AND

GCCUSTO.CODCCUSTO=TORCAMENTO.CODCCUSTO AND

/*GCCUSTO.CODCCUSTO=FLANRATCCU.CODCCUSTO AND

TTBORCAMENTO.CODTBORCAMENTO=FLANRATCCU.CODNATFINANCEIRA AND*/

TTBORCAMENTO.CODTBORCAMENTO=TORCAMENTO.CODTBORCAMENTO

UNION ALL

select

FLAN.CODCOLIGADA AS COLIGADA,

(CASE WHEN MONTH(DATABAIXA) = 1 THEN '01 - JAN'

WHEN MONTH(DATABAIXA) = 2 THEN '02 - FEV'

WHEN MONTH(DATABAIXA) = 3 THEN '03 - MAR'

WHEN MONTH(DATABAIXA) = 4 THEN '04 - ABR'

WHEN MONTH(DATABAIXA) = 5 THEN '05 - MAI'

WHEN MONTH(DATABAIXA) = 6 THEN '06 - JUN'

WHEN MONTH(DATABAIXA) = 7 THEN '07 - JUL'

WHEN MONTH(DATABAIXA) = 8 THEN '08 - AGO'

WHEN MONTH(DATABAIXA) = 9 THEN '09 - SET'

WHEN MONTH(DATABAIXA) = 10 THEN '10 - OUT'

WHEN MONTH(DATABAIXA) = 11 THEN '11 - NOV'

WHEN MONTH(DATABAIXA) = 12 THEN '12 - DEZ'

END) MES,

/*DATEPART (MONTH,DATABAIXA) AS MES, */

DATEPART (YEAR,DATABAIXA) AS ANO,

FLANRATCCU.CODCCUSTO+ ' - '+ GCCUSTO.NOME AS CENTRO_CUSTO,

FLANRATCCU.CODNATFINANCEIRA+ ' - ' + TTBORCAMENTO.DESCRICAO AS CLASIFICACAO,

FLAN.IDLAN AS NF,

0 AS EXCEDENTE,

0 AS ORCADO,

/*0 AS SALDO,*/

FLANRATCCU.VALOR AS REALIZADO

FROM

FLAN(NOLOCK), FLANRATCCU(NOLOCK),GCCUSTO(NOLOCK),TTBORCAMENTO(NOLOCK)

WHERE

FLAN.CODCOLIGADA=FLANRATCCU.CODCOLIGADA AND

FLAN.IDLAN=FLANRATCCU.IDLAN AND

FLAN.STATUSLAN=1 AND

FLAN.PAGREC=2 AND

GCCUSTO.CODCCUSTO=FLANRATCCU.CODCCUSTO AND

TTBORCAMENTO.CODTBORCAMENTO=FLANRATCCU.CODNATFINANCEIRA

Valeu!!

Edited by jsousa

Share this post


Link to post
Share on other sites

Pessoal,

Boa Tarde!

Gostaria de saber se alguém tem alguma ideia de como me ajudar?

Desejo um Feliz Natal à todosss!!

Abraços.

Share this post


Link to post
Share on other sites

jsousa,

não vejo isso faz tempo, principalmente essa parte de orcamentos, então, não sei ao certo se está certo, errado...

Qual o problema no final das contas? Está com erro na sentença? erros nos valores? Questão de agrupamentos... ?????

Share this post


Link to post
Share on other sites

Jair,

Boa noite!

QUando eu tento fazer a relação das consultas grifadas em vermelho a consulta em LOOP.

SELECT

TORCAMENTO.CODCOLIGADA AS COLIGADA,

(CASE WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 1 THEN '01 - JAN'

WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 2 THEN '02 - FEV'

WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 3 THEN '03 - MAR'

WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 4 THEN '04 - ABR'

WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 5 THEN '05 - MAI'

WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 6 THEN '06 - JUN'

WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 7 THEN '07 - JUL'

WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 8 THEN '08 - AGO'

WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 9 THEN '09 - SET'

WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 10 THEN '10 - OUT'

WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 11 THEN '11 - NOV'

WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 12 THEN '12 - DEZ'

END) MES,

/*DATEPART (MONTH,TITMPERIODOORCAMENTO.DATAFIM) AS MES,*/

DATEPART (YEAR,TITMPERIODOORCAMENTO.DATAFIM) AS ANO,

TORCAMENTO.CODCCUSTO + ' - '+ GCCUSTO.NOME AS CENTRO_CUSTO,

TORCAMENTO.CODTBORCAMENTO + ' - ' + TTBORCAMENTO.DESCRICAO AS CLASSIFICACAO,

0 AS NF,

TITMORCAMENTO.VALOREXCEDENTE AS EXCEDENTE,

TITMORCAMENTO.VALORORCADO AS ORCADO,

/*(TITMORCAMENTO.VALORORCADO - FLANRATCCU.VALOR) AS SALDO,*/

0 AS REALIZADO

FROM

TORCAMENTO(NOLOCK),TITMORCAMENTO(NOLOCK),TITMPERIODOORCAMENTO(NOLOCK),GCCUSTO(NOLOCK),TTBORCAMENTO(NOLOCK)/*, FLANRATCCU(NOLOCK)*/

WHERE

TORCAMENTO.CODCOLIGADA=TITMPERIODOORCAMENTO.CODCOLIGADA AND

TORCAMENTO.CODCOLIGADA=TITMORCAMENTO.CODCOLIGADA AND

TITMPERIODOORCAMENTO.CODCOLIGADA=TITMORCAMENTO.CODCOLIGADA AND

TORCAMENTO.IDORCAMENTO=TITMORCAMENTO.IDORCAMENTO AND

TORCAMENTO.IDPERIODO= TITMPERIODOORCAMENTO.IDPERIODO AND

TORCAMENTO.IDPERIODO=TITMPERIODOORCAMENTO.IDPERIODO AND

TITMPERIODOORCAMENTO.IDPERIODO=TITMORCAMENTO.IDPERIODO AND

TITMORCAMENTO.IDITMPERIODO=TITMPERIODOORCAMENTO.IDITMPERIODO AND

GCCUSTO.CODCCUSTO=TORCAMENTO.CODCCUSTO AND

/*GCCUSTO.CODCCUSTO=FLANRATCCU.CODCCUSTO AND

TTBORCAMENTO.CODTBORCAMENTO=FLANRATCCU.CODNATFINANCEIRA AND*/

TTBORCAMENTO.CODTBORCAMENTO=TORCAMENTO.CODTBORCAMENTO

UNION ALL

select

FLAN.CODCOLIGADA AS COLIGADA,

(CASE WHEN MONTH(DATABAIXA) = 1 THEN '01 - JAN'

WHEN MONTH(DATABAIXA) = 2 THEN '02 - FEV'

WHEN MONTH(DATABAIXA) = 3 THEN '03 - MAR'

WHEN MONTH(DATABAIXA) = 4 THEN '04 - ABR'

WHEN MONTH(DATABAIXA) = 5 THEN '05 - MAI'

WHEN MONTH(DATABAIXA) = 6 THEN '06 - JUN'

WHEN MONTH(DATABAIXA) = 7 THEN '07 - JUL'

WHEN MONTH(DATABAIXA) = 8 THEN '08 - AGO'

WHEN MONTH(DATABAIXA) = 9 THEN '09 - SET'

WHEN MONTH(DATABAIXA) = 10 THEN '10 - OUT'

WHEN MONTH(DATABAIXA) = 11 THEN '11 - NOV'

WHEN MONTH(DATABAIXA) = 12 THEN '12 - DEZ'

END) MES,

/*DATEPART (MONTH,DATABAIXA) AS MES, */

DATEPART (YEAR,DATABAIXA) AS ANO,

FLANRATCCU.CODCCUSTO+ ' - '+ GCCUSTO.NOME AS CENTRO_CUSTO,

FLANRATCCU.CODNATFINANCEIRA+ ' - ' + TTBORCAMENTO.DESCRICAO AS CLASIFICACAO,

FLAN.IDLAN AS NF,

0 AS EXCEDENTE,

0 AS ORCADO,

/*0 AS SALDO,*/

FLANRATCCU.VALOR AS REALIZADO

FROM

FLAN(NOLOCK), FLANRATCCU(NOLOCK),GCCUSTO(NOLOCK),TTBORCAMENTO(NOLOCK)

WHERE

FLAN.CODCOLIGADA=FLANRATCCU.CODCOLIGADA AND

FLAN.IDLAN=FLANRATCCU.IDLAN AND

FLAN.STATUSLAN=1 AND

FLAN.PAGREC=2 AND

GCCUSTO.CODCCUSTO=FLANRATCCU.CODCCUSTO AND

TTBORCAMENTO.CODTBORCAMENTO=FLANRATCCU.CODNATFINANCEIRA

Share this post


Link to post
Share on other sites

Boa noite,

Se eu entendi bem o "loop", normalmente é devido a um erro no relacionamento entre tabelas ( faltar chaves nos relacionamentos). porem em minha instalação não utilizamos essas tabelas, mas arrisco este palpite:

SELECT
TORCAMENTO.CODCOLIGADA AS COLIGADA,
(CASE WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 1 THEN '01 - JAN'
WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 2 THEN '02 - FEV'
WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 3 THEN '03 - MAR'
WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 4 THEN '04 - ABR'
WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 5 THEN '05 - MAI'
WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 6 THEN '06 - JUN'
WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 7 THEN '07 - JUL'
WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 8 THEN '08 - AGO'
WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 9 THEN '09 - SET'
WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 10 THEN '10 - OUT'
WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 11 THEN '11 - NOV'
WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 12 THEN '12 - DEZ'
END) MES,
/*DATEPART (MONTH,TITMPERIODOORCAMENTO.DATAFIM) AS MES,*/
DATEPART (YEAR,TITMPERIODOORCAMENTO.DATAFIM) AS ANO,
TORCAMENTO.CODCCUSTO + ' - '+ GCCUSTO.NOME AS CENTRO_CUSTO,
TORCAMENTO.CODTBORCAMENTO + ' - ' + TTBORCAMENTO.DESCRICAO AS CLASSIFICACAO,
0 AS NF,
TITMORCAMENTO.VALOREXCEDENTE AS EXCEDENTE,
TITMORCAMENTO.VALORORCADO AS ORCADO,
(TITMORCAMENTO.VALORORCADO - FLANRATCCU.VALOR) AS SALDO,
0 AS REALIZADO
FROM
TORCAMENTO(NOLOCK)
INNER JOIN GCCUSTO (NOLOCK) ON GCCUSTO.CODCOLIGADA = TORCAMENTO.CODCOLIGADA AND GCCUSTO.CODCCUSTO = TORCAMENTO.CODCCUSTO
INNER JOIN TITMORCAMENTO (NOLOCK) ON TITMORCAMENTO.CODCOLIGADA = TORCAMENTO.CODCOLIGADA AND TITMORCAMENTO.IDORCAMENTO = TORCAMENTO.IDORCAMENTO
INNER JOIN TITMPERIODOORCAMENTO (NOLOCK) ON TITMPERIODOORCAMENTO.CODCOLIGADA = TITMORCAMENTO.CODCOLIGADA AND TITMPERIODOORCAMENTO.IDPERIODO = TITMORCAMENTO.IDPERIODO AND TITMPERIODOORCAMENTO.IDITMPERIODO = TITMORCAMENTO.IDITMPERIODO
INNER JOIN TTBORCAMENTO (NOLOCK) ON TTBORCAMENTO.CODCOLIGADA = TORCAMENTO.CODCOLTBORCAMENTO AND TTBORCAMENTO.CODTBORCAMENTO = TORCAMENTO.CODTBORCAMENTO
INNER JOIN FLANRATCCU (NOLOCK) ON FLANRATCCU.CODCOLIGADA = GCCUSTO.CODCOLIGADA AND FLANRATCCU.CODCCUSTO = GCCUSTO.CODCCUSTO											

UNION ALL
SELECT
FLAN.CODCOLIGADA AS COLIGADA,
(CASE WHEN MONTH(DATABAIXA) = 1 THEN '01 - JAN'
WHEN MONTH(DATABAIXA) = 2 THEN '02 - FEV'
WHEN MONTH(DATABAIXA) = 3 THEN '03 - MAR'
WHEN MONTH(DATABAIXA) = 4 THEN '04 - ABR'
WHEN MONTH(DATABAIXA) = 5 THEN '05 - MAI'
WHEN MONTH(DATABAIXA) = 6 THEN '06 - JUN'
WHEN MONTH(DATABAIXA) = 7 THEN '07 - JUL'
WHEN MONTH(DATABAIXA) = 8 THEN '08 - AGO'
WHEN MONTH(DATABAIXA) = 9 THEN '09 - SET'
WHEN MONTH(DATABAIXA) = 10 THEN '10 - OUT'
WHEN MONTH(DATABAIXA) = 11 THEN '11 - NOV'
WHEN MONTH(DATABAIXA) = 12 THEN '12 - DEZ'
END) MES,
/*DATEPART (MONTH,DATABAIXA) AS MES, */
DATEPART (YEAR,DATABAIXA) AS ANO,
FLANRATCCU.CODCCUSTO+ ' - '+ GCCUSTO.NOME AS CENTRO_CUSTO,
FLANRATCCU.CODNATFINANCEIRA+ ' - ' + TTBORCAMENTO.DESCRICAO AS CLASIFICACAO,
FLAN.IDLAN AS NF,
0 AS EXCEDENTE,
0 AS ORCADO,
0 AS SALDO,
FLANRATCCU.VALOR AS REALIZADO
FROM
FLAN(NOLOCK)
 INNER JOIN FLANRATCCU (NOLOCK) ON FLANRATCCU.IDLAN = FLAN.IDLAN AND FLANRATCCU.CODCOLIGADA = FLAN.CODCOLIGADA
 INNER JOIN GCCUSTO (NOLOCK) ON GCCUSTO.CODCOLIGADA = FLAN.CODCOLIGADA AND GCCUSTO.CODCCUSTO = FLAN.CODCCUSTO
 INNER JOIN TTBORCAMENTO (NOLOCK) ON TTBORCAMENTO.CODCOLIGADA = FLANRATCCU.CODCOLNATFINANCEIRA AND TTBORCAMENTO.CODTBORCAMENTO = FLANRATCCU.CODNATFINANCEIRA
WHERE
FLAN.STATUSLAN=1 AND
FLAN.PAGREC=2

  • Like 1

Share this post


Link to post
Share on other sites

Boa noite,

Se eu entendi bem o "loop", normalmente é devido a um erro no relacionamento entre tabelas ( faltar chaves nos relacionamentos). porem em minha instalação não utilizamos essas tabelas, mas arrisco este palpite:

SELECT
TORCAMENTO.CODCOLIGADA AS COLIGADA,
(CASE WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 1 THEN '01 - JAN'
WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 2 THEN '02 - FEV'
WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 3 THEN '03 - MAR'
WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 4 THEN '04 - ABR'
WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 5 THEN '05 - MAI'
WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 6 THEN '06 - JUN'
WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 7 THEN '07 - JUL'
WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 8 THEN '08 - AGO'
WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 9 THEN '09 - SET'
WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 10 THEN '10 - OUT'
WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 11 THEN '11 - NOV'
WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 12 THEN '12 - DEZ'
END) MES,
/*DATEPART (MONTH,TITMPERIODOORCAMENTO.DATAFIM) AS MES,*/
DATEPART (YEAR,TITMPERIODOORCAMENTO.DATAFIM) AS ANO,
TORCAMENTO.CODCCUSTO + ' - '+ GCCUSTO.NOME AS CENTRO_CUSTO,
TORCAMENTO.CODTBORCAMENTO + ' - ' + TTBORCAMENTO.DESCRICAO AS CLASSIFICACAO,
0 AS NF,
TITMORCAMENTO.VALOREXCEDENTE AS EXCEDENTE,
TITMORCAMENTO.VALORORCADO AS ORCADO,
(TITMORCAMENTO.VALORORCADO - FLANRATCCU.VALOR) AS SALDO,
0 AS REALIZADO
FROM
TORCAMENTO(NOLOCK)
INNER JOIN GCCUSTO (NOLOCK) ON GCCUSTO.CODCOLIGADA = TORCAMENTO.CODCOLIGADA AND GCCUSTO.CODCCUSTO = TORCAMENTO.CODCCUSTO
INNER JOIN TITMORCAMENTO (NOLOCK) ON TITMORCAMENTO.CODCOLIGADA = TORCAMENTO.CODCOLIGADA AND TITMORCAMENTO.IDORCAMENTO = TORCAMENTO.IDORCAMENTO
INNER JOIN TITMPERIODOORCAMENTO (NOLOCK) ON TITMPERIODOORCAMENTO.CODCOLIGADA = TITMORCAMENTO.CODCOLIGADA AND TITMPERIODOORCAMENTO.IDPERIODO = TITMORCAMENTO.IDPERIODO AND TITMPERIODOORCAMENTO.IDITMPERIODO = TITMORCAMENTO.IDITMPERIODO
INNER JOIN TTBORCAMENTO (NOLOCK) ON TTBORCAMENTO.CODCOLIGADA = TORCAMENTO.CODCOLTBORCAMENTO AND TTBORCAMENTO.CODTBORCAMENTO = TORCAMENTO.CODTBORCAMENTO
INNER JOIN FLANRATCCU (NOLOCK) ON FLANRATCCU.CODCOLIGADA = GCCUSTO.CODCOLIGADA AND FLANRATCCU.CODCCUSTO = GCCUSTO.CODCCUSTO											

UNION ALL
SELECT
FLAN.CODCOLIGADA AS COLIGADA,
(CASE WHEN MONTH(DATABAIXA) = 1 THEN '01 - JAN'
WHEN MONTH(DATABAIXA) = 2 THEN '02 - FEV'
WHEN MONTH(DATABAIXA) = 3 THEN '03 - MAR'
WHEN MONTH(DATABAIXA) = 4 THEN '04 - ABR'
WHEN MONTH(DATABAIXA) = 5 THEN '05 - MAI'
WHEN MONTH(DATABAIXA) = 6 THEN '06 - JUN'
WHEN MONTH(DATABAIXA) = 7 THEN '07 - JUL'
WHEN MONTH(DATABAIXA) = 8 THEN '08 - AGO'
WHEN MONTH(DATABAIXA) = 9 THEN '09 - SET'
WHEN MONTH(DATABAIXA) = 10 THEN '10 - OUT'
WHEN MONTH(DATABAIXA) = 11 THEN '11 - NOV'
WHEN MONTH(DATABAIXA) = 12 THEN '12 - DEZ'
END) MES,
/*DATEPART (MONTH,DATABAIXA) AS MES, */
DATEPART (YEAR,DATABAIXA) AS ANO,
FLANRATCCU.CODCCUSTO+ ' - '+ GCCUSTO.NOME AS CENTRO_CUSTO,
FLANRATCCU.CODNATFINANCEIRA+ ' - ' + TTBORCAMENTO.DESCRICAO AS CLASIFICACAO,
FLAN.IDLAN AS NF,
0 AS EXCEDENTE,
0 AS ORCADO,
0 AS SALDO,
FLANRATCCU.VALOR AS REALIZADO
FROM
FLAN(NOLOCK)
INNER JOIN FLANRATCCU (NOLOCK) ON FLANRATCCU.IDLAN = FLAN.IDLAN AND FLANRATCCU.CODCOLIGADA = FLAN.CODCOLIGADA
INNER JOIN GCCUSTO (NOLOCK) ON GCCUSTO.CODCOLIGADA = FLAN.CODCOLIGADA AND GCCUSTO.CODCCUSTO = FLAN.CODCCUSTO
INNER JOIN TTBORCAMENTO (NOLOCK) ON TTBORCAMENTO.CODCOLIGADA = FLANRATCCU.CODCOLNATFINANCEIRA AND TTBORCAMENTO.CODTBORCAMENTO = FLANRATCCU.CODNATFINANCEIRA
WHERE
FLAN.STATUSLAN=1 AND
FLAN.PAGREC=2

João,

Bom dia!

Irei testar e lhe darei um retorno.

Obrigado.

Share this post


Link to post
Share on other sites

Você consegue testar a consulta no SQLManager?

Sim, ele começa a executar, porém não terminar.

Fiquei esperando uns 10 minutos e nada de concluir.

Share this post


Link to post
Share on other sites

Vou te pedir mais 2 testes...

Primeiro tentar com o top 1000 , de modo a trazer apenas 1000 registros em cada query:

SELECT top 1000
TORCAMENTO.CODCOLIGADA AS COLIGADA,
(CASE WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 1 THEN '01 - JAN'
WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 2 THEN '02 - FEV'
WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 3 THEN '03 - MAR'
WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 4 THEN '04 - ABR'
WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 5 THEN '05 - MAI'
WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 6 THEN '06 - JUN'
WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 7 THEN '07 - JUL'
WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 8 THEN '08 - AGO'
WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 9 THEN '09 - SET'
WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 10 THEN '10 - OUT'
WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 11 THEN '11 - NOV'
WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 12 THEN '12 - DEZ'
END) MES,
/*DATEPART (MONTH,TITMPERIODOORCAMENTO.DATAFIM) AS MES,*/
DATEPART (YEAR,TITMPERIODOORCAMENTO.DATAFIM) AS ANO,
TORCAMENTO.CODCCUSTO + ' - '+ GCCUSTO.NOME AS CENTRO_CUSTO,
TORCAMENTO.CODTBORCAMENTO + ' - ' + TTBORCAMENTO.DESCRICAO AS CLASSIFICACAO,
0 AS NF,
TITMORCAMENTO.VALOREXCEDENTE AS EXCEDENTE,
TITMORCAMENTO.VALORORCADO AS ORCADO,
(TITMORCAMENTO.VALORORCADO - FLANRATCCU.VALOR) AS SALDO,
0 AS REALIZADO
FROM
TORCAMENTO(NOLOCK)
INNER JOIN GCCUSTO (NOLOCK) ON GCCUSTO.CODCOLIGADA = TORCAMENTO.CODCOLIGADA AND GCCUSTO.CODCCUSTO = TORCAMENTO.CODCCUSTO
INNER JOIN TITMORCAMENTO (NOLOCK) ON TITMORCAMENTO.CODCOLIGADA = TORCAMENTO.CODCOLIGADA AND TITMORCAMENTO.IDORCAMENTO = TORCAMENTO.IDORCAMENTO
INNER JOIN TITMPERIODOORCAMENTO (NOLOCK) ON TITMPERIODOORCAMENTO.CODCOLIGADA = TITMORCAMENTO.CODCOLIGADA AND TITMPERIODOORCAMENTO.IDPERIODO = TITMORCAMENTO.IDPERIODO AND TITMPERIODOORCAMENTO.IDITMPERIODO = TITMORCAMENTO.IDITMPERIODO
INNER JOIN TTBORCAMENTO (NOLOCK) ON TTBORCAMENTO.CODCOLIGADA = TORCAMENTO.CODCOLTBORCAMENTO AND TTBORCAMENTO.CODTBORCAMENTO = TORCAMENTO.CODTBORCAMENTO
INNER JOIN FLANRATCCU (NOLOCK) ON FLANRATCCU.CODCOLIGADA = GCCUSTO.CODCOLIGADA AND FLANRATCCU.CODCCUSTO = GCCUSTO.CODCCUSTO																					
UNION ALL
SELECT top 1000
FLAN.CODCOLIGADA AS COLIGADA,
(CASE WHEN MONTH(DATABAIXA) = 1 THEN '01 - JAN'
WHEN MONTH(DATABAIXA) = 2 THEN '02 - FEV'
WHEN MONTH(DATABAIXA) = 3 THEN '03 - MAR'
WHEN MONTH(DATABAIXA) = 4 THEN '04 - ABR'
WHEN MONTH(DATABAIXA) = 5 THEN '05 - MAI'
WHEN MONTH(DATABAIXA) = 6 THEN '06 - JUN'
WHEN MONTH(DATABAIXA) = 7 THEN '07 - JUL'
WHEN MONTH(DATABAIXA) = 8 THEN '08 - AGO'
WHEN MONTH(DATABAIXA) = 9 THEN '09 - SET'
WHEN MONTH(DATABAIXA) = 10 THEN '10 - OUT'
WHEN MONTH(DATABAIXA) = 11 THEN '11 - NOV'
WHEN MONTH(DATABAIXA) = 12 THEN '12 - DEZ'
END) MES,
/*DATEPART (MONTH,DATABAIXA) AS MES, */
DATEPART (YEAR,DATABAIXA) AS ANO,
FLANRATCCU.CODCCUSTO+ ' - '+ GCCUSTO.NOME AS CENTRO_CUSTO,
FLANRATCCU.CODNATFINANCEIRA+ ' - ' + TTBORCAMENTO.DESCRICAO AS CLASIFICACAO,
FLAN.IDLAN AS NF,
0 AS EXCEDENTE,
0 AS ORCADO,
0 AS SALDO,
FLANRATCCU.VALOR AS REALIZADO
FROM
FLAN(NOLOCK)
INNER JOIN FLANRATCCU (NOLOCK) ON FLANRATCCU.IDLAN = FLAN.IDLAN AND FLANRATCCU.CODCOLIGADA = FLAN.CODCOLIGADA
INNER JOIN GCCUSTO (NOLOCK) ON GCCUSTO.CODCOLIGADA = FLAN.CODCOLIGADA AND GCCUSTO.CODCCUSTO = FLAN.CODCCUSTO
INNER JOIN TTBORCAMENTO (NOLOCK) ON TTBORCAMENTO.CODCOLIGADA = FLANRATCCU.CODCOLNATFINANCEIRA AND TTBORCAMENTO.CODTBORCAMENTO = FLANRATCCU.CODNATFINANCEIRA
WHERE
FLAN.STATUSLAN=1 AND
FLAN.PAGREC=2

e depois usar o " exibir plano de execução " do sqlmanager da consulta :

http://i.imgur.com/LiLFg.png

LiLFg.png

Share this post


Link to post
Share on other sites

Fiz o teste colocando somente para trazer 1000 ele gera no entanto as informações está saindo misturadas.

Como nunca utilizei a segunda opção eu devo analisar o que nela?

Share this post


Link to post
Share on other sites

Se está saindo misturado, é possível que ainda falte alguma chave ligando as tabelas...

Na segunda opção você pode analisar a operação da query, cada etapa.

Share this post


Link to post
Share on other sites

Se está saindo misturado, é possível que ainda falte alguma chave ligando as tabelas...

Na segunda opção você pode analisar a operação da query, cada etapa.

Valeu pela ajudar!

Vou ver o que consigo fazer.

Share this post


Link to post
Share on other sites

Jsouza,

1 - vc tem dois selects na sua consulta (usando UNION), tente executar separado para ajudar em qual parte pode estar o problema...

2 - Vc está usando, ao menos na parte de baixo, essa parte:

FLANRATCCU.CODCCUSTO+ ' - '+ GCCUSTO.NOME AS CENTRO_CUSTO,

INNER JOIN GCCUSTO (NOLOCK) ON GCCUSTO.CODCOLIGADA = FLAN.CODCOLIGADA AND GCCUSTO.CODCCUSTO = FLAN.CODCCUSTO

sendo que está nos JOINs linkando a GCCUSTO com outra tabela, no caso a FLAN... isso está errado. Deveria linkar com a FLANRATCCU.CODCCUSTO e não pelo FLAN.CODCCUSTO.

3 - Outro teste que pode fazer é trazer os dados de apenas um ou alguns lançamentos, assim, poderá visualizar melhor os valores para conferencia e analise da questão.

Share this post


Link to post
Share on other sites

Jsouza,

1 - vc tem dois selects na sua consulta (usando UNION), tente executar separado para ajudar em qual parte pode estar o problema...

2 - Vc está usando, ao menos na parte de baixo, essa parte:

FLANRATCCU.CODCCUSTO+ ' - '+ GCCUSTO.NOME AS CENTRO_CUSTO,

INNER JOIN GCCUSTO (NOLOCK) ON GCCUSTO.CODCOLIGADA = FLAN.CODCOLIGADA AND GCCUSTO.CODCCUSTO = FLAN.CODCCUSTO

sendo que está nos JOINs linkando a GCCUSTO com outra tabela, no caso a FLAN... isso está errado. Deveria linkar com a FLANRATCCU.CODCCUSTO e não pelo FLAN.CODCCUSTO.

3 - Outro teste que pode fazer é trazer os dados de apenas um ou alguns lançamentos, assim, poderá visualizar melhor os valores para conferencia e analise da questão.

Obrigado Jair pela dica.

Estarei verificando e darei um retorno.

Share this post


Link to post
Share on other sites

Jair,

Boa tarde!

O problema está no primeiro Select, pois quando eu acrescento as linhas abaixo ele tronar "N" valores repetidos para o mesmo centro de custo. Olhe os relacionamentos, porém não sei + o que fazer.

Já no segundo Select está trazendo as informações corretamente.

Tem alguma ideia do pode ser feito?

(TITMORCAMENTO.VALORORCADO - FLANRATCCU.VALOR) AS SALDO,

INNER JOIN FLANRATCCU (NOLOCK) ON FLANRATCCU.CODCOLIGADA = GCCUSTO.CODCOLIGADA AND FLANRATCCU.CODCCUST

SELECT top 1000

TORCAMENTO.CODCOLIGADA AS COLIGADA,

(CASE WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 1 THEN '01 - JAN'

WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 2 THEN '02 - FEV'

WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 3 THEN '03 - MAR'

WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 4 THEN '04 - ABR'

WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 5 THEN '05 - MAI'

WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 6 THEN '06 - JUN'

WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 7 THEN '07 - JUL'

WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 8 THEN '08 - AGO'

WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 9 THEN '09 - SET'

WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 10 THEN '10 - OUT'

WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 11 THEN '11 - NOV'

WHEN MONTH(TITMPERIODOORCAMENTO.DATAFIM) = 12 THEN '12 - DEZ'

END) MES,

/*DATEPART (MONTH,TITMPERIODOORCAMENTO.DATAFIM) AS MES,*/

DATEPART (YEAR,TITMPERIODOORCAMENTO.DATAFIM) AS ANO,

TORCAMENTO.CODCCUSTO + ' - '+ GCCUSTO.NOME AS CENTRO_CUSTO,

TORCAMENTO.CODTBORCAMENTO + ' - ' + TTBORCAMENTO.DESCRICAO AS CLASSIFICACAO,

0 AS NF,

TITMORCAMENTO.VALOREXCEDENTE AS EXCEDENTE,

TITMORCAMENTO.VALORORCADO AS ORCADO,

(TITMORCAMENTO.VALORORCADO - FLANRATCCU.VALOR) AS SALDO,

0 AS REALIZADO

FROM

TORCAMENTO(NOLOCK)

INNER JOIN GCCUSTO (NOLOCK) ON GCCUSTO.CODCOLIGADA = TORCAMENTO.CODCOLIGADA AND GCCUSTO.CODCCUSTO = TORCAMENTO.CODCCUSTO

INNER JOIN TITMORCAMENTO (NOLOCK) ON TITMORCAMENTO.CODCOLIGADA = TORCAMENTO.CODCOLIGADA AND TITMORCAMENTO.IDORCAMENTO = TORCAMENTO.IDORCAMENTO

INNER JOIN TITMPERIODOORCAMENTO (NOLOCK) ON TITMPERIODOORCAMENTO.CODCOLIGADA = TITMORCAMENTO.CODCOLIGADA AND TITMPERIODOORCAMENTO.IDPERIODO = TITMORCAMENTO.IDPERIODO AND TITMPERIODOORCAMENTO.IDITMPERIODO = TITMORCAMENTO.IDITMPERIODO

INNER JOIN TTBORCAMENTO (NOLOCK) ON TTBORCAMENTO.CODCOLIGADA = TORCAMENTO.CODCOLTBORCAMENTO AND TTBORCAMENTO.CODTBORCAMENTO = TORCAMENTO.CODTBORCAMENTO

INNER JOIN FLANRATCCU (NOLOCK) ON FLANRATCCU.CODCOLIGADA = GCCUSTO.CODCOLIGADA AND FLANRATCCU.CODCCUST

Share this post


Link to post
Share on other sites

Luciano Boa tarde.

Vou anexar o cubo de Orçamento, onde ele tras informações de "N" lugares, (Nucleus, valor orçado e as informações da grade contabil para os movimentos que geram a mesma. - Fluxus para Lançamentos gerados diretamente nele - Saldus, as informações da folha.)

É necessário alguma parametrações para que as informações batam, onde a principal diz respeito ao Labore, pois como trabalhamos com NO o mesmo não possui nenhum vinculo com essa Tabela, logo foi necessário utilizar o Metadados para fazer esses vinculos no labore.

Segue o Cubo em anexo.

Espero que ajude.

ORCADO X REALIZADO - INF CONT.rar

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.