Ir para conteúdo
Seja Membro VIP - Remova Banners de Propagandas, Tenha Liberado Qualquer Download, Além de Acessos em Áreas Exclusivas!! ×
Quer acesso a todas as Áreas do Fórum, até aquelas só para membros VIPs? Também quer poder baixar qualquer ARQUIVO? ×
AVISO AOS MEMBROS:

Fizemos uma atualização em 18/06/2023, e a forma de acesso ao Fórum mudou. Não mais está sendo aceito o login pelo Nome de Exibição cadastrado. Agora, apenas pelo email e pelos integradores de Login do Facebook, Google e Microsoft. O Facebook estava com uma validação pendente e já foi normalizado o acesso, já o Google, ainda estamos verificando o que está ocorrendo que não está funcionando.
Caso precisem de ajuda para o login pelo email acesse o link << Esqueci minha senha de acesso>> ou nos envie um pedido de ajuda pelo email admin@forumrm.com.br

Administração
ForumRM

Duvida em Sentença<b> (Resolvido)</b>


fabio_consultor

Posts Recomendados


  • Tópicos Que Criei:  83
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  433
  • Conteúdo/Dia:  0.07
  • Reputação:   0
  • Pontos/Conquistas:  2.980
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  53

Pessoal,

ao tentar rodar no cubo esta estorando tempo e nao rodando alem de demorar um absurdo. Alguem pode me ajudar a resolver isso?

SELECT DISTINCT EALUNOS.MATRICULA AS MATRICULA,EALUNOS.NOME AS NOME_ALUNO, UCURSOS.NOME AS CURSO,

UMATRICPL.PERIODO AS PERIODO,UMATRICPL.DATAMAT AS DT_MATRICULA, EDESCLAN.DESCRICAO AS DESCRIÇÃO,

(SELECT SUM(VALOR1) FROM EDESCLAN B WHERE MONTH(B.DATA)= 1 AND YEAR(B.DATA)=2007

AND B.MATALUNO = EDESCLAN.MATALUNO AND B.CODLANC = EDESCLAN.CODLANC)AS JAN,

(SELECT SUM(VALOR1) FROM EDESCLAN B WHERE MONTH(B.DATA)= 2 AND YEAR(B.DATA)=2007

AND B.MATALUNO = EDESCLAN.MATALUNO AND B.CODLANC = EDESCLAN.CODLANC) AS FEV,

(SELECT SUM(VALOR1) FROM EDESCLAN B WHERE MONTH(B.DATA)= 3 AND YEAR(B.DATA)=2007

AND B.MATALUNO = EDESCLAN.MATALUNO AND B.CODLANC = EDESCLAN.CODLANC) AS MAR,

(SELECT SUM(VALOR1) FROM EDESCLAN B WHERE MONTH(B.DATA)= 4 AND YEAR(B.DATA)=2007

AND B.MATALUNO = EDESCLAN.MATALUNO AND B.CODLANC = EDESCLAN.CODLANC)AS ABR,

(SELECT SUM(VALOR1) FROM EDESCLAN B WHERE MONTH(B.DATA)= 5 AND YEAR(B.DATA)=2007

AND B.MATALUNO = EDESCLAN.MATALUNO AND B.CODLANC = EDESCLAN.CODLANC) AS MAIO,

(SELECT SUM(VALOR1) FROM EDESCLAN B WHERE MONTH(B.DATA)= 6 AND YEAR(B.DATA)=2007

AND B.MATALUNO = EDESCLAN.MATALUNO AND B.CODLANC = EDESCLAN.CODLANC) AS JUNHO,

(SELECT SUM(VALOR1) FROM EDESCLAN B WHERE MONTH(B.DATA)= 7 AND YEAR(B.DATA)=2007

AND B.MATALUNO = EDESCLAN.MATALUNO AND B.CODLANC = EDESCLAN.CODLANC)AS JULHO,

(SELECT SUM(VALOR1) FROM EDESCLAN B WHERE MONTH(B.DATA)= 8 AND YEAR(B.DATA)=2007

AND B.MATALUNO = EDESCLAN.MATALUNO AND B.CODLANC = EDESCLAN.CODLANC) AS AGOSTO,

(SELECT SUM(VALOR1) FROM EDESCLAN B WHERE MONTH(B.DATA)= 9 AND YEAR(B.DATA)=2007

AND B.MATALUNO = EDESCLAN.MATALUNO AND B.CODLANC = EDESCLAN.CODLANC) AS SETEMBRO

FROM EALUNOS(NOLOCK),UMATRICPL(NOLOCK),EDESCLAN(NOLOCK),FLAN(NOLOCK), UCURSOS(NOLOCK)

WHERE EALUNOS.MATRICULA=UMATRICPL.MATALUNO

AND FLAN.CODCFO <> 'F00679'

AND FLAN.CODTDO = '4'

AND EDESCLAN.MATALUNO=EALUNOS.MATRICULA

AND EDESCLAN.MATALUNO = UMATRICPL.MATALUNO

AND UMATRICPL.CODCUR=UCURSOS.CODCUR

AND UMATRICPL.PERLETIVO='2007/2'

AND EDESCLAN.PERLETIVO='2007/2'

AND UMATRICPL.DATAMAT>='2007/07/01'

AND UMATRICPL.DATAMAT<='2007/09/30'

AND EDESCLAN.SERVEXTRA='N'

ORDER BY EALUNOS.MATRICULA, UMATRICPL.DATAMAT

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  900
  • Tópicos/Dia:  0.14
  • Meu Conteúdo:  8.845
  • Conteúdo/Dia:  1.34
  • Reputação:   310
  • Pontos/Conquistas:  106.599
  • Conteúdo Resolvido:  0
  • Dias Ganho:  195
  • Status:  Offline
  • Idade:  52
  • Dispositivo:  Windows

Fábio, não estou acostumado com as tabelas do Classis, faz muito tempo que nÃo mexo com ele...

mas vamos la dar uns pitacos:

1 - por que está usando o Select Distinct ?? Não estará retornando o seu select com um carteziano,

o que neste caso, retorna muita coisa, e está lento por este motivo ?

Não sei no seu caso, mas normalmente não deve-se usar o DISTINCT em consultas "normais"

2 - Verifiquei que no seu select externo, vc filtra EDESCLAN.PERLETIVO='2007/2', já

no interno, está trazendo todos periodos letivos...

3 - Faltou relacionar a tabela EDESCLAN com a FLAN. Acrescentei abaixo.

Pra saber se as tabelas estão relacionadas e com os campos corretos, vc pode fazer uma

consulta pelo SP_HELP (SP_HELP EDESCLAN), e procurar as FKs com a tabela relacionada. Por exemplo, vi lá na

EDESCLAN que tem uma FK com a FLAN e vi os campos... é o que precisa pra por no WHERE...

4 - A Tabela UMATALUN não deveria estar no seu From também ?

5 - Não seria melhor no seu caso, usar um CASE para abrir os valores por Mes ? Ficaria mais ou menos assim:

SELECT DISTINCT EALUNOS.MATRICULA AS MATRICULA,EALUNOS.NOME AS NOME_ALUNO, UCURSOS.NOME AS CURSO,

UMATRICPL.PERIODO AS PERIODO,UMATRICPL.DATAMAT AS DT_MATRICULA, EDESCLAN.DESCRICAO AS DESCRIÇÃO,

CASE WHEN MONTH(B.DATA)= 1 AND YEAR(B.DATA)=2007 THEN SUM(VALOR1) ELSE 0 END AS JAN,

CASE WHEN MONTH(B.DATA)= 2 AND YEAR(B.DATA)=2007 THEN SUM(VALOR1) ELSE 0 END AS FEV,

CASE WHEN MONTH(B.DATA)= 3 AND YEAR(B.DATA)=2007 THEN SUM(VALOR1) ELSE 0 END AS MAR,

CASE WHEN MONTH(B.DATA)= 4 AND YEAR(B.DATA)=2007 THEN SUM(VALOR1) ELSE 0 END AS ABR,

CASE WHEN MONTH(B.DATA)= 5 AND YEAR(B.DATA)=2007 THEN SUM(VALOR1) ELSE 0 END AS MAIO,

CASE WHEN MONTH(B.DATA)= 6 AND YEAR(B.DATA)=2007 THEN SUM(VALOR1) ELSE 0 END AS JUNHO,

CASE WHEN MONTH(B.DATA)= 7 AND YEAR(B.DATA)=2007 THEN SUM(VALOR1) ELSE 0 END AS JULHO,

CASE WHEN MONTH(B.DATA)= 8 AND YEAR(B.DATA)=2007 THEN SUM(VALOR1) ELSE 0 END AS AGOSTO,

CASE WHEN MONTH(B.DATA)= 9 AND YEAR(B.DATA)=2007 THEN SUM(VALOR1) ELSE 0 END AS SETEMBRO

FROM EALUNOS(NOLOCK), UMATRICPL(NOLOCK), EDESCLAN(NOLOCK), FLAN(NOLOCK), UCURSOS(NOLOCK)

WHERE EALUNOS.MATRICULA=UMATRICPL.MATALUNO

and ealunos.codcoligada=umatricpl.codcoligada

and edesclan.codlanc=flan.idlan and edesclan.codcoligada=flan.codcoligada

AND FLAN.CODCFO <> 'F00679'

AND FLAN.CODTDO = '4'

AND EDESCLAN.MATALUNO=EALUNOS.MATRICULA

AND EDESCLAN.MATALUNO=UMATRICPL.MATALUNO

AND UMATRICPL.CODCUR=UCURSOS.CODCUR

AND UMATRICPL.PERLETIVO='2007/2'

AND EDESCLAN.PERLETIVO='2007/2'

AND UMATRICPL.DATAMAT>='2007/07/01'

AND UMATRICPL.DATAMAT<='2007/09/30'

AND EDESCLAN.SERVEXTRA='N'

ORDER BY EALUNOS.MATRICULA, UMATRICPL.DATAMAT

Bom, tenta ver ai se dá uma melhorada... deve melhorar sim.

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  83
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  433
  • Conteúdo/Dia:  0.07
  • Reputação:   0
  • Pontos/Conquistas:  2.980
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  53

JA AJUDOU E MUITO VOU BATER CBEÇA UM POUCO AQUI.

Valeu pela força.

Olha só mandei ai pra vcs um book com alguns relatorios do Nucleus e alguns script´s para Cubos do classis.

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  900
  • Tópicos/Dia:  0.14
  • Meu Conteúdo:  8.845
  • Conteúdo/Dia:  1.34
  • Reputação:   310
  • Pontos/Conquistas:  106.599
  • Conteúdo Resolvido:  0
  • Dias Ganho:  195
  • Status:  Offline
  • Idade:  52
  • Dispositivo:  Windows

JA AJUDOU E MUITO VOU BATER CBEÇA UM POUCO AQUI.

Valeu pela força.

Olha só mandei ai pra vcs um book com alguns relatorios do Nucleus e alguns script´s para Cubos do classis.

Ah, legal, acabei de ver aqui o email com algumas coisas. Vou dar uma olhada e posto ai pra todos em seguida.
Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  79
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  611
  • Conteúdo/Dia:  0.09
  • Reputação:   2
  • Pontos/Conquistas:  3.847
  • Conteúdo Resolvido:  0
  • Dias Ganho:  1
  • Status:  Offline
  • Idade:  54

Fábio,

Eu pesquisei o CorporeBV.sql e o Banco, e, não tem índice para o campo DATA da tabela EDESCLAN, isto faz com que vire uma carroça qualquer consulta, você poderia criar um índice, de acordo com a tua necessidade, para agilizar este processo.

Um Abraço

p.s. a consulta demorou 13 minutos para executar....

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  83
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  433
  • Conteúdo/Dia:  0.07
  • Reputação:   0
  • Pontos/Conquistas:  2.980
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  53

DEU BLZ...

SELECT DISTINCT EALUNOS.MATRICULA AS MATR,EALUNOS.NOME AS NOME_ALUNO, UCURSOS.NOME AS CURSO,

UMATRICPL.PERIODO AS PERIODO,UMATRICPL.DATAMAT AS DT_MATR, B.DESCRICAO AS DESCRIÇÃO,

CASE WHEN MONTH(B.DATA)= 1 AND YEAR(B.DATA)=2007 THEN SUM(VALOR1) ELSE 0 END AS JAN,

CASE WHEN MONTH(B.DATA)= 2 AND YEAR(B.DATA)=2007 THEN SUM(VALOR1) ELSE 0 END AS FEV,

CASE WHEN MONTH(B.DATA)= 3 AND YEAR(B.DATA)=2007 THEN SUM(VALOR1) ELSE 0 END AS MAR,

CASE WHEN MONTH(B.DATA)= 4 AND YEAR(B.DATA)=2007 THEN SUM(VALOR1) ELSE 0 END AS ABR,

CASE WHEN MONTH(B.DATA)= 5 AND YEAR(B.DATA)=2007 THEN SUM(VALOR1) ELSE 0 END AS MAIO,

CASE WHEN MONTH(B.DATA)= 6 AND YEAR(B.DATA)=2007 THEN SUM(VALOR1) ELSE 0 END AS JUNHO,

CASE WHEN MONTH(B.DATA)= 7 AND YEAR(B.DATA)=2007 THEN SUM(VALOR1) ELSE 0 END AS JULHO,

CASE WHEN MONTH(B.DATA)= 8 AND YEAR(B.DATA)=2007 THEN SUM(VALOR1) ELSE 0 END AS AGOSTO,

CASE WHEN MONTH(B.DATA)= 9 AND YEAR(B.DATA)=2007 THEN SUM(VALOR1) ELSE 0 END AS SETEMBRO

FROM EALUNOS(NOLOCK), UMATRICPL(NOLOCK), EDESCLAN B(NOLOCK), FLAN(NOLOCK), UCURSOS(NOLOCK)

WHERE EALUNOS.MATRICULA=UMATRICPL.MATALUNO

AND EALUNOS.CODCOLIGADA=UMATRICPL.CODCOLIGADA

AND B.CODLANC=FLAN.IDLAN AND B.CODCOLIGADA=FLAN.CODCOLIGADA

AND FLAN.CODCFO <> 'F00679'

AND FLAN.CODTDO = '4'

AND B.MATALUNO=EALUNOS.MATRICULA

AND B.MATALUNO=UMATRICPL.MATALUNO

AND UMATRICPL.CODCUR=UCURSOS.CODCUR

AND UMATRICPL.PERLETIVO=:ANO_S

AND B.PERLETIVO=:ANO_S

AND UMATRICPL.DATAMAT>=:DATAINI_D

AND UMATRICPL.DATAMAT<=:DATAFIN_D

AND B.SERVEXTRA='N'

GROUP BY EALUNOS.MATRICULA,EALUNOS.NOME, UCURSOS.NOME, UMATRICPL.PERIODO,UMATRICPL.DATAMAT,B.DESCRICAO,

B.DATA

OBRIGADO GALERA...

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  900
  • Tópicos/Dia:  0.14
  • Meu Conteúdo:  8.845
  • Conteúdo/Dia:  1.34
  • Reputação:   310
  • Pontos/Conquistas:  106.599
  • Conteúdo Resolvido:  0
  • Dias Ganho:  195
  • Status:  Offline
  • Idade:  52
  • Dispositivo:  Windows

Tópico Resolvido.

O mesmo foi marcado como resolvido por não haver mais nada a resolver.

Qualquer coisa, alguma dúvida ou questionamento sobre o assunto, pode postar novamente que analisaremos, ou se preferir, favor entrar em contato com a administração ou moderação, através do link: Administradores e Moderadores

Se preferir, mande um email para admin@forumrm.com.br

Link para comentar
Compartilhar em outros sites

Participe da conversa

Você pode postar agora, e se registrar mais tarde. Se você tiver uma conta, faça o login agora para postar com sua conta.

Visitante
Responder esse tópico

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Seu link foi automaticamente inserido no corpo do post.   Exibir como um link

×   Seu conteúdo anterior foi restaurado.   Limpar conteúdo do editor

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

×
×
  • Criar Novo...

Informação Importante

Usando este site, você concorda com nossos Termos de Uso e nossa Política de Privacidade.