Jump to content

Recommended Posts

ola pessoal, sera que voces podem me ajudar por gentileza, segue script

 

WITH Dados AS (

SELECT idOrcMatDet,
       idGrupo,
       idSubGrupo,
       omd.numeroOrcamento,
       orcmatdet_preco4lista,
       baseProduto       
  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'
),


Resumo AS (
SELECT R.*,TotalGrupo = ( SELECT SUM(orcmatdet_preco4lista)
                            FROM  Dados R WHERE R.idSubGrupo = 04
                           )
     FROM Dados R
)
SELECT  * FROM Resumo order by idSubGrupo

 

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

 

me da este resultado 

 

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

 

eu gostaria que no total grupo aparecesse o valor de cada IDSUBGRUPO 

 

 

 

 

Share this post


Link to post
Share on other sites

RESPOSTA

 

 

 

 

WITH Dados AS (

SELECT idOrcMatDet,
       idGrupo,
       idSubGrupo,
       omd.numeroOrcamento,
       orcmatdet_preco4lista,
       baseProduto       
  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 distinct R.idGrupo,baseProduto,
       TotalGrupo = SUM(orcmatdet_preco4lista) OVER(PARTITION BY idGrupo)
  FROM Dados R
order by idGrupo

 

 

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.