none
Duvida sobre consulta. RRS feed

  • Pergunta

  • Olá pessoal tudo bom,

    Estou com um dúvida que não obtive solução ainda. Vamos a questão. 

    • Eu tenho 3 consultas e preciso que essas 3 fiquem armazenados dentro de uma coluna em outra tabela, quando o usuário salvar ou atualizar os registros.

    as consultas que eu fiz foram essas:

    Select t.Descricao , tm.Aliquota, Sum(tm.Valor) Valor
    From ttrbmov tm, dtributo t
    Where t.codcoligada  = tm.codcoligada
    And   t.codtrb       = tm.codtrb
    And   tm.codcoligada = 1
    And   tm.idmov       = 88168
    And   tm.valor > 0
    And   tm.codtrb not in ('DEDINS', 'DEDTRF', 'INSS', 'COFINS', 'PIS', 'PISS', 'COFISS')
    Group by t.Descricao, tm.Aliquota
    Order by t.Descricao

    Select t.Descricao , tm.Valor
    From ttrbmov tm, dtributo t
    Where t.codcoligada  = tm.codcoligada
    And   t.codtrb       = tm.codtrb
    And   tm.codcoligada = 1
    And   tm.idmov       = 88168
    And   tm.valor > 0
    And   tm.codtrb in ('DEDINS', 'DEDTRF')
    Order by t.Descricao

    Select t.Descricao , tm.Aliquota, tm.valor
    From ttrbmov tm, dtributo t
    Where t.codcoligada  = tm.codcoligada
    And   t.codtrb       = tm.codtrb
    And   tm.codcoligada = 1
    And   tm.idmov       = 88168
    And   tm.valor > 0
    And   tm.codtrb = 'INSS'
    Order by t.Descricao

    Como eu faria pra armazenar as mesmas em uma coluna de outra tabela somente exibindo os resultado das 3 consultas?

    Qual a melhor maneira de resolver este problema, se com function, trigger ou procedure. Sou estagiário em Banco de dados e ficou esse probleminha para eu resolver na empresa. Quem puder me ajudar ou pelo menos dar uma dica vai ajudar muito.

    Obrigado a todos,

    Att,

    Luiz Antonio


    • Editado Luiz_Santana terça-feira, 30 de julho de 2013 00:37
    terça-feira, 30 de julho de 2013 00:04

Todas as Respostas

  • Boa noite Luiz,

    Precisa informar qual é a relação entre os campos

    Exemplo usando inner join

    SELECT column_name(s)
    FROM table1
    INNER JOIN table2 ON table1.column_name=table2.column_name;

    INNER JOIN table3 ON table1.column_name=table3.column_name;

    terça-feira, 30 de julho de 2013 00:31
  • Você também poder criar uma View para usar ela com se fosse tabela, usando inner join
    terça-feira, 30 de julho de 2013 00:33
  •  

    Verifica se funciona!

    Selct t.Descricao,

    ( Select tm.Aliquota

    From ttrbmov tm Where t.codcoligada = tm.codcoligada And t.codtrb = tm.codtrb And tm.codcoligada = 1 And tm.idmov = 88168 And tm.valor > 0 And tm.codtrb not in ('DEDINS', 'DEDTRF', 'INSS', 'COFINS', 'PIS', 'PISS', 'COFISS') ) as aliquota, ( Select tm.Valor From ttrbmov tm Where t.codcoligada = tm.codcoligada And t.codtrb = tm.codtrb And tm.codcoligada = 1 And tm.idmov = 88168 And tm.valor > 0 And tm.codtrb in ('DEDINS', 'DEDTRF') ) as valor, ( Select tm.valor From ttrbmov tm Where t.codcoligada = tm.codcoligada And t.codtrb = tm.codtrb And tm.codcoligada = 1 And tm.idmov = 88168 And tm.valor > 0 And tm.codtrb = 'INSS' ) as valor_aliquota, from ttrbmov tm Order by t.Descricao, tm.Aliquota, tm.valor


     
    terça-feira, 30 de julho de 2013 01:04
  • Outro jeito seria você criar uma view para cada estas consultas, depois usar elas com se fosse uma tabela usando inner join

    terça-feira, 30 de julho de 2013 01:05
  • Acho que desta maneira seria o mais indicado para ele. 
    terça-feira, 30 de julho de 2013 16:18