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? ×

Select com 3 tabelas distintas<b> (Resolvido)</b>


Posts Recomendados


  • Tópicos Que Criei:  902
  • Tópicos/Dia:  0.14
  • Meu Conteúdo:  8.857
  • Conteúdo/Dia:  1.34
  • Reputação:   311
  • Pontos/Conquistas:  106.711
  • Conteúdo Resolvido:  0
  • Dias Ganho:  196
  • Status:  Offline
  • Idade:  52
  • Dispositivo:  Windows

Texto recebido do membro hendrix, pois o mesmo ainda não sabe criar tópicos...

Pra agilizar, estou postando aqui, até que o nosso amigo saiba iniciar um tópico.

Sou novo no Forum e não sei como criar um novo tópico. Você pode me ajudar ?

Preciso somar as notas de 3 tabelas diferentes.

Fiz os Select´s separados de cada uma das tabelas. Ou seja, preciso pegar o resultado de cada uma e somar; afim de obter uma nota parcial deste aluno.

select sum (pontnum)

from udataaval

where codperlet = '2008/1'

and CODTUR = 'D1NA'

and numprova in ('1','2')

and codmat = 'EJ'

select A1, A2, A3, A4, A5

from umatalun

where perletivo = '2008/1'

and CODTUR = 'D1NA'

and codmat = 'EJ'

and mataluno = 'd03101'

select P1, P2, P3, P4, P5, P6, P7, P8, P9, P10

from ealunotpr

where perletivo = '2008/1'

and CODTUR = 'D1NA'

and codmat = 'Filo I'

and mataluno = 'D03101'

Alguém pode me ajudar ?

Atenciosamente,

Lucas

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  15
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  548
  • Conteúdo/Dia:  0.09
  • Reputação:   1
  • Pontos/Conquistas:  2.891
  • Conteúdo Resolvido:  0
  • Dias Ganho:  1
  • Status:  Offline
  • Idade:  44

Lucas,

Eu não conheço as estrturas dessas tabelas, por isso não sei qual o resultado você traz em cada uma das 3 sentenças.

Se você precisa de um único resultado, ou seja, valor da nota, você pode:

1) UNION ALL

a) em cada uma das sentenças utilize a soma para trazer um único campo;

b) utilize a função UNION ALL para trazer as sentenças juntas, ou seja, em três linhas;

c) em seguida você cria uma sentença externa para somar os resultados

2) JOINS

a) faça uma sentença externa;

b) as 3 sentenças internas você faz um JOIN para os campos CODTUR, CODMAT e MATALUNO;

c) assim você terá uma linhas para cada aluno e o resultado das 3 sentenças em campos de um resultado, bastanto realizar a soma

Se você não entender eu faço exemplos.

Att,

Maffra

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  0
  • Tópicos/Dia:  0
  • Meu Conteúdo:  24
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  120
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  41

Não faço uso das tables UDATAAVAL e EALUNOTPR mas acho que a estrutura ficaria algo do tipo:

select a.A1 + a.A2 + a.A3 + a.A4 + a.A5 + sum (b.pontnum) + c.P1 + c.P2 + c.P3 + c.P4 + c.P5 + c.P6 + c.P7 + c.P8 + c.P9 + c.P10

from umatalun a

inner join udataaval b on (a.mataluno=b.mataluno and a.perletivo=b.codperlet and a.codmat=b.codmat)

inner join ealunotpr c on (a.mataluno=c.mataluno and a.perletivo=c.perletivo and a.codmat=c.codmat)

where perletivo = '2008/1'

and CODTUR = 'D1NA'

and codmat = 'EJ'

and mataluno = 'd03101'

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  15
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  548
  • Conteúdo/Dia:  0.09
  • Reputação:   1
  • Pontos/Conquistas:  2.891
  • Conteúdo Resolvido:  0
  • Dias Ganho:  1
  • Status:  Offline
  • Idade:  44

isso msm....

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  0
  • Tópicos/Dia:  0
  • Meu Conteúdo:  3
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  15
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline

Texto recebido do membro hendrix, pois o mesmo ainda não sabe criar tópicos...

Pra agilizar, estou postando aqui, até que o nosso amigo saiba iniciar um tópico.

Pessoal,

na verdade descobri que só preciso somar as linhas dos resultados destes 2 select´s

select A1, A2, A3, A4, A5

from umatalun

where perletivo = '2008/1'

and CODTUR = 'D1NA'

and codmat = 'FILO I'

and mataluno = 'd03101'

que traz este resultado :

NULL 21.00 NULL NULL NULL

------------------------------------------------------------

select P1, P2, P3, P4, P5, P6, P7, P8, P9, P10

from ealunotpr

where perletivo = '2008/1'

and CODTUR = 'D1NA'

and codmat = 'FILO I'

and mataluno = 'd03101'

5.0000 9.0000 NULL NULL NULL NULL NULL NULL NULL NULL

------------------------------------------------------------------------------------------------------------------------

Mas não consigo somar os valores que estão NULL.

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  15
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  548
  • Conteúdo/Dia:  0.09
  • Reputação:   1
  • Pontos/Conquistas:  2.891
  • Conteúdo Resolvido:  0
  • Dias Ganho:  1
  • Status:  Offline
  • Idade:  44

Hendrix,

Utilize a função ISNULL. Essa função se assemelha ao REPLACE ou a um CASE, exemplo: se valor NULL então substitua por ...

ISNULL(CampoNulo,NovoValor)

Att,

Maffra

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  192
  • Tópicos/Dia:  0.03
  • Meu Conteúdo:  1.767
  • Conteúdo/Dia:  0.27
  • Reputação:   2
  • Pontos/Conquistas:  10.702
  • Conteúdo Resolvido:  0
  • Dias Ganho:  1
  • Status:  Offline
  • Idade:  52

Hendrix,

Utilize a função ISNULL. Essa função se assemelha ao REPLACE ou a um CASE, exemplo: se valor NULL então substitua por ...

ISNULL(CampoNulo,NovoValor)

Att,

Maffra

isso msm.... rsrsrs

Fica mais ou menos assim Hendrix:

select isnull(A1,0), isnull(A2,0), isnull(A3,0), isnull(A4,0), isnull(A5,0)

from umatalun ...

Desta forma vc vai conseguir somar os valores quando zerados por estarem nulos...

*B)*

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  12
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  56
  • Conteúdo/Dia:  0.01
  • Reputação:   0
  • Pontos/Conquistas:  400
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  42

Pela mor de Deus, não me crucifiquem (até escrevi errado... rsrrs)

Como são tabelas distintas, tome cuidado para resultados multiplos que vão distorcer seu valor final, na duvida é melhor alinhar os campos de cada consulta (mesmo campos) e utilizar o union all entre cada e acima de tudo vc faz um select e soma o resultado de cada.

Pois ao interligar tabelas que não são 1 para 1 irá trazer resultados acima do desejado.

Vixeeee....... Entendeu ?

Link para comentar
Compartilhar em outros sites

  • 4 semanas depois...

  • Tópicos Que Criei:  15
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  548
  • Conteúdo/Dia:  0.09
  • Reputação:   1
  • Pontos/Conquistas:  2.891
  • Conteúdo Resolvido:  0
  • Dias Ganho:  1
  • Status:  Offline
  • Idade:  44

Tópico Fechado / Resolvido.

O mesmo foi marcado como resolvido por não haver mais nada a resolver, pelo mesmo ter ficado parado por muito tempo sem o membro que o iniciou voltar a participar ou comentar, ou por não ter mais comentários de nenhum outro membro do Fórum.

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 que retiraremos o STATUS de RESOLVIDO do seu título.

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.