Jump to content
willianmarques

sum dentro do select com inner join

Recommended Posts

Ola, desculpa se abri um topico errado, sou novo aqui mas sempre acompanho o forum de voces, 

 

sou novo na area de banco de dados entao desculpa se for grosseiro em entender algo, rs

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

eu estou com este select

 

SELECT  
    idOrcMatDet,
    idGrupo,
    idSubGrupo,
    omd.numeroOrcamento,
    orcmatdet_preco4lista 
FROM
    OrcMatDet omd INNER JOIN ORCCAB cab ON omd.numeroOrcamento = cab.numeroOrcamento
 where orccab_Cadastro BETWEEN '20-12-2017 00:00:00.000' and '20-01-2018 00:00:00.000'

 

 

que me deu este resultado 

 

idOrcMatDet    idGrupo    idSubGrupo    numeroOrcamento    orcmatdet_preco4lista
13899    5    07    EL310010    0,00
13900    5    04    EL310010    4115,21
13901    5    12    EL310010    4922,62
13902    5    12    EL310010    5013,93
13903    5    11    EL310010    548,44
13904    5    11    EL310010    645,20
13969    5    07    EL310011    0,00
13970    5    12    EL310011    3717,87
13971    5    12    EL310011    3915,09
13972    5    12    EL310011    3645,93
13973    5    12    EL310011    4077,69
13974    5    12    EL310011    685,26
13975    5    12    EL310011    3570,22
13976    5    12    EL310011    3365,33
13977    5    12    EL310011    3732,83

 

gostaria de somar os valores somento do 'idgrupo' 12 por exemplo alguem pode me ajudar

 

 

Share this post


Link to post
Share on other sites

ja descobri pessoal,

ficou assim o script

 

WITH Dados AS (

SELECT idOrcMatDet,
       idGrupo,
       idSubGrupo,
       omd.numeroOrcamento,
       orcmatdet_preco4lista,
       TotalPorGrupo = SUM(orcmatdet_preco4lista) OVER(PARTITION BY idGrupo)
  FROM OrcMatDet omd
 INNER JOIN ORCCAB cab
    ON omd.numeroOrcamento = cab.numeroOrcamento
 WHERE orccab_Cadastro BETWEEN '20-12-2017 00:00:00.000' AND '20-01-2018 00:00:00.000'
)

SELECT * FROM Dados R
WHERE idGrupo = 4

 

vlw

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Felipe Guedes Coutinho
      Galera, venho contribuindo com diversas dúvidas, mas hoje quem está com uma dúvida sou eu.
       
      Cenário - Gerar Dados para Relatório de Faturamento.
      Objetivo - Obter os valores totais das tabelas de Compra, Venda e Despesa agrupados por mês através de SUM dentro do "periodo" passado pela tela de consulta do relatório.
      Problema - Não existe um relacionamento entre as tabelas e eu preciso obter os resultados por 1 (UM) único select pois a cada registro lido com os valores totalizados e agrupados por mês eu movimento para um array onde o resultado do array é movimentado para um Chart do Google que gera um gráfico.
       
      Insumos:
      Tabela compra

      RESULTADO SEPARADO DA TABELA COMPRA
      SELECT  sum(vlr_pago),
              CASE extract(MONTH from dt_registro_compra)
                  WHEN 1 THEN 'Janeiro'
                  WHEN 2 THEN 'Fevereiro'
                  WHEN 3 THEN 'Março'
                  WHEN 4 THEN 'Abril'
                  WHEN 5 THEN 'Maio'
                  WHEN 6 THEN 'Junho'
                  WHEN 7 THEN 'Julho'
                  WHEN 8 THEN 'Agosto'
                  WHEN 9 THEN 'Setembro'
                  WHEN 10 THEN 'Outubro'
                  WHEN 11 THEN 'Novembro'
                  WHEN 12 THEN 'Dezembro'
              END AS mes
              FROM db_pescado_gelo.sqltb_compra
              WHERE dt_registro_compra between '2019-01-01' and '2019-12-31'
      group by mes
      order by dt_registro_compra asc
       
      RESULTADO:

       
      Tabela Venda

      RESULTADO SEPARADO DA TABELA VENDA
      SELECT  sum(vlr_vale),
              CASE extract(MONTH from dt_registro_venda)
                  WHEN 1 THEN 'Janeiro'
                  WHEN 2 THEN 'Fevereiro'
                  WHEN 3 THEN 'Março'
                  WHEN 4 THEN 'Abril'
                  WHEN 5 THEN 'Maio'
                  WHEN 6 THEN 'Junho'
                  WHEN 7 THEN 'Julho'
                  WHEN 8 THEN 'Agosto'
                  WHEN 9 THEN 'Setembro'
                  WHEN 10 THEN 'Outubro'
                  WHEN 11 THEN 'Novembro'
                  WHEN 12 THEN 'Dezembro'
              END AS mes
              FROM db_pescado_gelo.sqltb_venda
              WHERE dt_registro_venda between '2019-01-01' and '2019-12-31' 
      group by mes
      order by dt_registro_venda asc
       
      RESULTADO:

       
      Tabela Despesa

      Sei que devo colocar dt_pagamento is not null
      RESULTADO SEPARADO DA TABELA DESPESA
      SELECT  sum(vlr_pago),
              CASE extract(MONTH from dt_pagamento)
                  WHEN 1 THEN 'Janeiro'
                  WHEN 2 THEN 'Fevereiro'
                  WHEN 3 THEN 'Março'
                  WHEN 4 THEN 'Abril'
                  WHEN 5 THEN 'Maio'
                  WHEN 6 THEN 'Junho'
                  WHEN 7 THEN 'Julho'
                  WHEN 8 THEN 'Agosto'
                  WHEN 9 THEN 'Setembro'
                  WHEN 10 THEN 'Outubro'
                  WHEN 11 THEN 'Novembro'
                  WHEN 12 THEN 'Dezembro'
              END AS mes
              FROM db_pescado_gelo.sqltb_despesa
              WHERE dt_pagamento between '2019-01-01' and '2019-12-31'
                AND dt_pagamento is not null
      group by mes
      order by dt_pagamento asc
       
      RESULTADO:

       
       
      O resultado que eu gostaria é algo parecido com isso:
       
      TABELA DE VENDA TABELA DE COMPRA TABELA DE DESPESA - - R$ 31.272,55 Julho - - Agosto R$ 3.796,53 R$ 20.687,20 Agosto R$ 3.796,53 Agosto  
      Esse resultado eu "preciso" que seja através do retorno do um único SELECT, se alguém puder me ajudar, ficarei muito agradecido.
       
      Se puderem dar uma forã agradeço @Motta ; @Omar~ ; @Maujor ; @gabrielms 
       
      Att.
      Felipe Coutinho
    • By Pedro Batista Lopes
      Estou com o problemas com uma query em mysql, fiz duas uma cliente outra usuário juntei as duas, 
      Mais eu queria fazer mais um campo que contasse a quantidade de notas que tem para cada cliente.
      vou enviar a query.
      select DISTINCT cli.nome, nf.numero_nf, nf.data_em, nf.valor from cliente cli join nota_fiscal nf on cli.id = nf.id_cliente WHERE nf.data_em >= "2019-01-01" and nf.data_em <= "2019-01-30" Gostaria que não repetisse os usuários e contasse quantas vezes eles aparecem . 
      segue anexo imagem como sai assim
       

    • By thiagoguedes
      Olá pessoal,  estou dando meus primeiros passos no php e gostaria da ajuda de vocês. 
       
      Estou exibindo os dados da  tabela frete e nela há a chave estrangeira cod_empresa, que informa qual empresa está oferecendo o frete. 
      Quero exibir o nome da empresa quando apresentar o nome da empresa e não o código, então estou fazendo um INNER JOIN pra tabela empresa e tentando exibir o campo nomefantasia_empresa.
       
      Meu código, porém, está dando erro e não consigo corrigir. Vocês podem me ajudar?
       
      <?php include "conexao.php"; $result_fretes = "SELECT * FROM frete AS f INNER JOIN empresa AS e ON f.cod_empresa = e.cod_empresa"; $resultado_cursos = mysqli_query($conn, $result_cursos); while ($rows_cursos = mysqli_fetch_array($resultado_cursos)){ echo $rows_cursos['cod_frete']; echo $rows_cursos['cod_empresa']; echo $rows_cursos['rasaosocial_empresa']; } ?>  
    • By Ygor Guedes
      Boa tarde meu pessoal. Preciso da ajuda de vocês em uma consulta baseada em Inner Join + Group By. Irei deixar as tabelas e a consulta que eu tenho, para melhor visualização:
       
      Consulta: 
      SELECT tab_garagens.onibus_ponto, tab_garagens.onibus_prefixo, data FROM pontos INNER JOIN tab_garagens ON pontos.onibus_ponto = tab_garagens.onibus_ponto Tabela pontos:
      | onibus_ponto |                data                |
      |           10           |  2019-06-03 12:00:00 |
      |           10           |  2019-06-03 12:10:00 |
      |           44           |  2019-06-03 12:00:00 |
       
      Tabela tab_garagens:
      | onibus_ponto |  onibus_prefixo  |
      |           10           |      DE700            |
      |           44           |      GL030            |
       
      A minha consulta está trazendo a informação mais antiga da data; o que eu preciso é tipo um ORDER BY com data mais recente, onde eu pego a data mais atual do registro agrupado na coluna 'onibus_ponto'.
       
      Eu gostaria que saísse assim: 
       
      | onibus_ponto |  onibus_prefixo |             data                  |
      |        10              |       DE700          | 2019-06-03 12:10:00 |
      |        44              |       GL030          | 2019-06-03 12:00:00 |
       
      Se puderem me ajudar, fico agradecido
    • By Danado_
      como eu pego os dados "pagseguro"?
       
      tipo, to fazendo um inner join e meu select ta assim:
      SELECT * FROM lista_de_presente_selecionada INNER JOIN lista_de_presente ON lista_de_presente_selecionada.id_item = lista_de_presente.id  
       

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.