none
Somando por ID RRS feed

  • Pergunta

  • Prezados boa tarde, mas uma vez peço ajuda, vms la

    Sentença

    SELECT IDTRF,IDPAI,CODTRF,CAMPOLIVREVALOR2,CAMPOLIVREVALOR1  FROM MTRF WHERE IDPRJ = '389' 
    ORDER BY CODTRF

    Resultado

    Id          Id_Pai   Codigo                           campo1      campo2

    1              1         001                                 NULL         NULL
    129          1        001.01                             NULL         NULL
    131         129      001.01.001                     10.0000     20.0000
    133         129      001.01.002                     20.0000     20.0000
    135         129      001.01.003                     30.0000     20.0000
    141         129      001.01.004                      0.0000        0.0000
    144          129     001.01.005                      0.0000        0.0000
    8             1         001.02                            NULL            NULL
    9             8         001.02.001                     15.0000        20.0000

    Prezados vejam que o Id 1 tem varios Id_Pai, com os codigos '001.01,001.02 e esse por sua vez tem seus Id_Pai

    001.01 Id 129 tem varios Id_Pai, eu tenho tb os campos 1 e 2, que tem valores, gostaria de poder somar esses campos com os valores

    Ex:

    1              1         001                               75             NULL
    129          1        001.01                            60             NULL
    131         129      001.01.001                     10.0000     20.0000
    133         129      001.01.002                     20.0000     20.0000
    135         129      001.01.003                     30.0000     20.0000
    141         129      001.01.004                      0.0000        0.0000
    144         129     001.01.005                       0.0000        0.0000
    8             1         001.02                            15               NULL
    9             8         001.02.001                     15.0000        20.0000

    e assim tambem fazer para p Campo2, obrigado e todos pela ajuda.

     

     

     

    segunda-feira, 21 de junho de 2010 20:37

Respostas

  • Ronnie,

    Talvez seja possível, mas acredito que você terá que utilizar o group by!!!!


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário]
    • Marcado como Resposta Ronnie Von segunda-feira, 5 de julho de 2010 14:13
    quarta-feira, 23 de junho de 2010 19:34

Todas as Respostas

  • Prezados bom dia, estou me virando aqui, para poder fazer essa sentença, consegui chegar, ate o momento para somar as Etapas, vejam a SQL


    SELECT 
    mt.idtrf,      
    mt.idpai,
         MT.CODTRF, 
           MT.NOME,
           MT.CODUND,
        MT.CAMPOLIVREVALOR2  AS [Qtd_Contrato],
      isnull(MT.CAMPOLIVREVALOR2,
      CASE WHEN  mt.codcoligada  = '1' THEN ( select sum (m.CAMPOLIVREVALOR2) from mtrf as m where  m.idpai = mt.idtrf and m.idprj = '422')
    ELSE 0 end )AS T
       FROM MTRF AS MT
      INNER JOIN MPRJ    AS MP ON MP.CODCOLIGADA = MT.CODCOLIGADA AND MP.IDPRJ = MT.IDPRJ
    AND MT.INDIRETO <> '1'
    AND MP.idprj  = '422' 

    Resultado

    1 1 1 r NULL NULL NULL
    2 1 001.01 SERVIÇOS INICIAIS NULL NULL 34
    3 2 001.01.001 Engenharia, VB 20 20
    4 2 001.01.002 Levantamento  VB 2 2
    5 2 001.01.003 Canteiro de Obras VB 3 3
    6 2 001.01.004 Mobilização VB 4 4
    7 2 001.01.005 Desmobilização VB 5 5
    8 1 001.02 PREPARO NULL NULL 6
    9 8 001.02.001 Limpeza  M2 6 6
    10 1 001.03 RECUPERAÇÃO  NULL NULL 70
    11 10 001.03.001 Aquisição  T 7 7
    12 10 001.03.002 Carga das pedras T 8 8
    13 10 001.03.003 Carga pedreira até a obra T 9 9
    14 10 001.03.004 Transporte das Pedra T 10 10
    15 10 001.03.005 Transporte  até a obra T 11 11
    16 10 001.03.006 Descarga  no pulmão T 12 12
    17 10 001.03.007 Descarga  T 13 13
    18 1 001.04 RECUPERAÇÃO  NULL NULL 62
    19 18 001.04.001 Lançamento  M3 14 14
    20 18 001.04.002 Controle  Mês 15 15
    21 18 001.04.003 Inspeções Mês 16 19
    22 18 001.04.004 Execução UN 17 17
     

    Pessoal as Etapas que esta em negrito eu consegui somar, porem eu gostaria de a Soma dessas Etapas aparecesse no item 001 que e a Obra

    Obrigado a todos pela ajuda

    quarta-feira, 23 de junho de 2010 13:05
  • Ronny,

    Por acaso essa query será utilizada em um relatório?

     

    Caso afirmativo, minha sugestão é trabalhar com quebras de grupo em seu relatório realizando as somatórias!!!!


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário]
    quarta-feira, 23 de junho de 2010 18:38
  • Ola Junior, eu queria tratar isso na Sql, pois e para fazer um Cubo - BI

    sera que teria como fazer isso..

     

    obrigado

    quarta-feira, 23 de junho de 2010 19:22
  • Ronnie,

    Talvez seja possível, mas acredito que você terá que utilizar o group by!!!!


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário]
    • Marcado como Resposta Ronnie Von segunda-feira, 5 de julho de 2010 14:13
    quarta-feira, 23 de junho de 2010 19:34