Jump to content

Search the Community

Showing results for tags 'group by'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Desenvolvimento e Banco de Dados
    • HTML e CSS
    • Java
    • Javascript
    • .NET
    • PHP
    • Python
    • Ruby
    • Mobile
    • Ambientes de Desenvolvimento
    • Arquitetura e Métodos Ágeis
    • Banco de Dados
    • DevOps
    • Desenvolvimento de Games
    • E-Commerce e Pagamentos Online
    • SEO e Otimizações
    • WordPress
    • Algoritmos & Outras Tecnologias
  • Design e Produto
    • Fotografia
    • Photoshop
    • Design de interfaces e UX
    • Edição/Produção de Vídeos
    • Marketing Online
    • Desenho, Ilustração e 3D
  • Entretenimento e uso pessoal
    • Geral
    • Segurança & Malwares
    • Gadgets e wearable
    • Softwares e Apps
    • Entretenimento

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Found 24 results

  1. 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
  2. ronimarcos.silva

    Totalizando colunas - Débito/Crédito

    Olá pessoal, preciso de uma ajuda de vocês. Não tenho muita experiência em SQL, creio que para vocês será fácil. Estou usando o banco de dados Oracle 12C. Supondo que tenho em meu banco 3 colunas, uma de conta de Débito, onde nesta coluna vai o código da conta de débito, uma de conta de Crédito, onde nesta coluna vai o código da conta de Crédito e uma de valor, que é informado o valor de cada lançamento a débito ou a crédito. Quando o lançamento for a débito, o valor da conta de crédito é igual a Zero (0) e inverso quando o lançamento for a débito, ou seja, se uma conta está preenchida é porque a outra não tem lançamento. Até aí tudo bém, posso totalizar o valor por cada conta de débito ou de crédito. Mas como faço se eu querer saber o total da conta de débito e o total da conta de crédito? Veja abaixo um exemplo: Select E640LCT.CtaDeb, E640LCT.CtaCre, sum(E210MVP.VLRMOV) as total from E210Mvp, E644Les, E640Lct where E644Les.CodEmp = E640Lct.CodEmp and E644Les.NumLct = E640Lct.NumLct and E644Les.CodEmp = E210Mvp.CodEmp and E644Les.CodPro = E210Mvp.CodPro and E644Les.CodDer = E210Mvp.CodDer and E644Les.CodDep = E210Mvp.CodDep and E644Les.DatMov = E210Mvp.DatMov and E644Les.SeqMov = E210Mvp.SeqMov and E210Mvp.CodEmp = 100 and E210Mvp.CodFil = 3 and E640LCT.OriLct = 'EST' and E640LCT.DatLct between '01/07/2019' and '31/07/2019' group by E640LCT.CtaDeb, E640LCT.CtaCre
  3. Ygor Guedes

    [RESOLVIDO] Inner Join com Group By

    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
  4. brunoogm

    Select Distinct ou Group By

    Pessoal tenho uma tabela no php cujo resultado do select vindo do bd vem no seguinte formato: -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 26 46 15/05/2019 13:57:25 Dinheiro Pendente Bacon Cheddar 1 60.00 26 46 15/05/2019 13:57:25 Dinheiro Pendente Chicken Club Sandwich 1 45.00 26 46 15/05/2019 13:57:25 Dinheiro Pendente Philly Cheese Steak 1 50.00 26 46 15/05/2019 13:57:25 Dinheiro Pendente Smoke House 1 55.00 26 46 15/05/2019 13:57:25 Dinheiro Pendente Stream Miller 1 35.00 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- E eu gostaria de fazer um select para que nao repita os dados iguais e que a tabela viesse assim: -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Bacon Cheddar 1 60.00 Chicken Club Sandwich 1 45.00 26 46 15/05/2019 13:57:25 Dinheiro Pendente Philly Cheese Steak 1 50.00 Smoke House 1 55.00 Stream Miller 1 35.00 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Alguem pode me ajudar, qual seria a melhor forma de fazer ? Essa tabela é gerada com um while no php entao se alguem saber uma outra maneira de montar isso aceito dicas. php: ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- echo "<tr role='row' class='odd'>"; echo "<td class='sorting_1'>" .$resultado['CodigoComanda']. "</td>"; echo "<td>" .$resultado['Nome']."</td>"; echo "<td>" .$resultado['Quantidade']."</td>"; echo "<td>" .$resultado['Preco']."</td>"; echo "<td>" .$resultado['Metodos']."</td>"; echo "<td>" .$resultado['DataPedido']."</td>"; echo "<td>" .$resultado['Situacao']."</td>"; echo "</tr>"; ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- vlw pessoal
  5. brunoogm

    Select Distinct ou Group By

    Pessoal tenho uma tabela no php cujo resultado do select vindo do bd vem no seguinte formato: -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 26 46 15/05/2019 13:57:25 Dinheiro Pendente Bacon Cheddar 160.00 26 46 15/05/2019 13:57:25 Dinheiro Pendente Chicken Club Sandwich 145.00 26 46 15/05/2019 13:57:25 Dinheiro Pendente Philly Cheese Steak 150.00 26 46 15/05/2019 13:57:25 Dinheiro Pendente Smoke House 155.00 26 46 15/05/2019 13:57:25 Dinheiro Pendente Stream Miller 135.00 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- E eu gostaria de fazer um select para que nao repita os dados iguais e que a tabela viesse assim: -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 46 15/05/2019 13:57:25 Dinheiro Pendente Bacon Cheddar 160.00 Chicken Club Sandwich 145.00 Philly Cheese Steak 150.00 Smoke House 155.00 26 46 15/05/2019 13:57:25 Dinheiro Pendente Stream Miller 135.00 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  6. Anderson Campos da Silva

    [Resolvido] Select com group by

    Olá, Estou com um problema, que para alguns pode ser simples, é o seguinte: Tenho 2 tabela relacionadas, MODELO e EQUIPAMENTO TABELA MODELO idModelo (INT) - chave primária txModelo (VARCHAR) TABELA EQUIPAMENTO idEquipamento (INT) - chave primária patrimonio (VARCHAR) situacao (VARCHAR) idModelo (INT) - Chave estrangeira O campo situação pode ser preenchido apenas apenas com PRODUÇÃO OU ESTOQUE. Enfim, preciso de um SELECT que retorne as seguintes colunas txModelo, quantidade de equipamentos por modelo, quantidade de equipamentos com PRODUÇÃO, e quantidade de equipamentos com ESTOQUE, exemplo: txModelo | total | produção | estoque CISCO 7 4 3 HP 15 10 5 DELL 10 2 8 Desde já agradeço
  7. Cesar Masserati Procopio

    Query para retornar Lista de Conversas c/ ultima Msg

    Boa Tarde Pessoal, Estou enviando duas Imagens para ajudar a ilustrar o que estou tentando fazer. Seguinte estou batendo a minha cabeça com isso e preciso de uma luz para resolver, por favor. Estou recriando o WhatsApp Web para fins de aprendizagem, estou tentando fazer uma QUERY que me retorne a lista das pessoas que estou conversando, e também a Última Mensagem da conversa que tive com a pessoa. EXEMPLO: Retornar a lista das Pessoas que conversam com o Cesar Neste caso teria que me retornar a lista abaixo: idAmigo NomeAmigo UltimaMsg DataMsg 8779 Adelita Pereira Machado Couto Msg CINCO - Cesar enviou para Adelita 05/07/2018 17:22 7669 Hellen Sabrina de Brito Msg TRES - Hellen enviou para Cesar 05/07/2018 12:31 63 Sandro Batista Dos Santos Msg UM - Cesar enviou para Sandro 05/07/2018 17:22 1545 Gino Cezar dos Santos Msg UM - Gino enviou para Cesar 05/07/2018 17:20
  8. Olá pessoal, tudo bom? Tenho uma tabela de região e outra de times... Preciso fazer uma consulta pra exibir quantos times eu tenho por região, minhas tabelas estão assim: tabela regioes id regiao cidade 1 Amarela São Paulo 2 Amarela Guarulhos 3 Amarela Osasco 4 Amarela Santos 5 Verde São Paulo 6 Verde Santos 7 Azul Santos 8 Azul Jundiai 9 Azul Guarulhos Tabela times id id_regiao time 1 3 America 2 5 Bufalos 3 2 Futebol 7 4 8 Bar sem lona 5 7 Inter de Limão 6 1 Atletico Maneiro 7 3 Baile de Monique 8 2 Barra Leverkusen 9 2 Piritubense A minha consulta até retorna as regiões, mas aparece o numero de times como zero, minha consulta está assim: SELECT DISTINCT regiao, (SELECT COUNT(id) FROM times WHERE times.id_regiao = regioes.id) AS Total FROM regioes GROUP BY regiao Será que podem me ajudar?
  9. Tenho uma tabela que gravo o idioma e a fluência do candidato. Por ex: Candidato Idioma Fluência 1 Inglês 1 2 Espanhol 3 3 Francês 2 Quero saber quantos candidatos tem inglês, espanhol e francês básico, avançado e intermediário. Para isso, eu faço o seguinte: select Idioma, COUNT(distinct(Candidato)) as Total, count(CASE WHEN Fluência = 1 THEN 'Básico' ELSE NULL END) as Básico, count(CASE WHEN Fluência = 2 THEN 'Intermediário' ELSE NULL END) as Intermediário, count(CASE WHEN Fluência = 3 THEN 'Avançado' ELSE NULL END) as Avançado from tabela group by Idioma O resultado é: Idioma Total Básico Intermediário Avançado Inglês 2 2 0 0 Espanhol 3 1 1 1 Francês 1 0 1 0 Porém, se tiver um registro duplicado, ou seja, de dois candidatos, se um aparecer 3 vezes e outro 2 vezes na tabela com o Inglês básico, o resultado vai ser assim: Idioma Total Básico Intermediário Avançado Inglês 2 5 0 0 Espanhol 3 1 1 1 Francês 1 0 1 0 Como eu faço nesse caso para contar somente os registros únicos?
  10. Lucas Garbelini

    GROUP BY não separando

    Galera, vê se alguém pode me ajudar Fiz o seguinte select Select DISTINCT rq.descricao, rq.idrequisicao_compra, us.nome as nome_usuario_solicitante, rq.status as status_requisicao, al.nome as nome_almoxarifado, COUNT(idr.idrequisicao_compra_item) as quantidade_itens, (SELECT COUNT(idorcamentos) FROM orcamentos ) as quant_orca from requisicao_compra rq INNER JOIN almoxarifado al ON rq.idalmoxarifado = al.idalmoxarifado INNER JOIN usuario us ON rq.idusuario = us.idusuario INNER JOIN itens_da_requisicao idr on rq.idrequisicao_compra = idr.idrequisicao_compra INNER JOIN orcamentos_itens_da_requisicao ore ON idr.id_itens_da_requisicao = ore.id_itens_da_requisicao INNER JOIN orcamentos orc ON ore.idorcamentos = orc.idorcamentos group by rq.descricao Na tabela requisicao_compra tenho 2 registros, porem o select está trazendo um só, já coloquei group by em todos os campos menos os count e não vai, sempre trás um, exemplo da consulta
  11. AndersonWS

    INNER JOIN retorna valores errados

    Amigos tenho a seguinte situação com as seguintes tabelas: total planta un nome Tenho vários itens cadastrados, sendo que todas as tabelas tem a seguinte estrutura: id(auto incremente), código, texto livre Fiz um INNER JOIN para relacionar os elementos "texto livre" usando o "código" para a união, exemplo: total: codigo 5, texto a planta: codigo 5, texto b un: codigo 5, texto c nome: codigo 5, texto n O problema é que retorna errado, duplicando os valores. Para entender segue o código: SELECT total.codigo, total.total, planta.planta, un.un, nome.nome FROM total INNER JOIN planta INNER JOIN un INNER JOIN nome ON total.codigo = planta.codigo AND total.codigo = un.codigo AND total.codigo = nome.codigo WHERE total.codigo = '10' GROUP BY total.id Retornou: id total codigo unidade nome 10 10 25 Tonelada ABACATE 10 500 25 Tonelada ABACATE E deveria vir: id total codigo unidade nome 10 10 25 Tonelada ABACATE 10 500 25 Kilograma LARANJA Ou seja, total vem correto mas unidade e nome repetem. Percebi que com 2 tabelas funciona desta forma mas com 3 ou mais se repetem. Qual a solução, se é que há uma além de mudar todo o meu banco de dados? Tem como manter assim?
  12. Caros, possuo duas query's uma retorna a soma de horas por colaborador. E a outra deve mostrar a soma de horas por lider de cada colaborador. SELECT p.nome , SEC_TO_TIME(sum(a.length*60)) as duracao, SEC_TO_TIME(sum(a.length*60)-((450*60)*20)) AS dif, SEC_TO_TIME(((450*60)*20)+900) AS carga FROM auditoria_ponto.appt a, auditoria_ponto.po p, auditoria_ponto.type_list t JOIN auditoria_ponto.queue q WHERE ((a.qid = q.queue_id) AND (q.queue_id = a.qid) AND (NOT ((q.provider_ext_id LIKE 'P%'))) ) and q.provider_ext_id = p.matricula and p.n_g_imediato LIKE 'NOME%' and t.type_id = a.work_type and t.type_lang = 'pt' and t.type_name = 'activity' and p.cluster_ = 'CURITIBA' and a.status not in( 'cancelled', 'suspended', 'deleted') and STR_TO_DATE(q.queue_date, '%d/%m/%Y') BETWEEN '2017/05/01' AND '2017/05/31' group by p.nome; RESULTADO : Mais retoma tudo certo a soma das horas por colaborador. SELECT p.n_g_imediato , SEC_TO_TIME(sum(a.length*60)) as duracao, SEC_TO_TIME(sum(a.length*60)-((450*60)*20)) AS dif, SEC_TO_TIME(((450*60)*20)+900) AS carga FROM auditoria_ponto.appt a, auditoria_ponto.po p, auditoria_ponto.type_list t JOIN auditoria_ponto.queue q WHERE ((a.qid = q.queue_id) AND (q.queue_id = a.qid) AND (NOT ((q.provider_ext_id LIKE 'P%'))) ) and q.provider_ext_id = p.matricula and p.n_g_imediato LIKE 'NOME%' and t.type_id = a.work_type and t.type_lang = 'pt' and t.type_name = 'activity' and p.cluster_ = 'CURITIBA' and a.status not in( 'cancelled', 'suspended', 'deleted') and STR_TO_DATE(q.queue_date, '%d/%m/%Y') BETWEEN '2017/05/01' AND '2017/05/31' group by p.n_g_imediato; RESULTADO Só que quando agrupo por líder, a soma se perde e calcula um valor diferente. Alguém tem uma luz? nunca tive problema com isso!
  13. josePeixoto

    Agrupar dados na consulta em oracle

    SELECT DISTINCT obter_nome_estabelecimento(b.cd_estabelecimento) estabelecimento, TO_CHAR(a.DT_AGENDA,'dd/mm/yyyy') dia, initcap(b.DS_CURTA) agenda, tasy.obter_desc_espec_agenda(b.cd_especialidade) especialidade, COUNT(DISTINCT a.nm_paciente) total_pacientes, 0 total_pacientes_atendidos FROM tasy.agenda_consulta a, tasy.agenda b WHERE a.cd_agenda = b.cd_agenda AND b.ie_situacao = 'A' and trunc(a.dt_agenda) between :dt_inicial and :dt_final and ((b.CD_ESTABELECIMENTO = :cd_estab) or (:cd_estab = 0)) AND a.nm_paciente IS NOT NULL AND a.IE_STATUS_AGENDA <> 'C' and a.cd_agenda = 7216 GROUP BY TO_CHAR(a.DT_AGENDA,'dd/mm/yyyy'), b.ds_curta, tasy.obter_desc_espec_agenda(b.cd_especialidade), obter_nome_estabelecimento(b.cd_estabelecimento) HAVING COUNT(DISTINCT a.nm_paciente) > :total_paciente union all SELECT DISTINCT obter_nome_estabelecimento(b.cd_estabelecimento) estabelecimento, TO_CHAR(a.DT_AGENDA,'dd/mm/yyyy') dia, initcap(b.DS_CURTA) agenda, tasy.obter_desc_espec_agenda(b.cd_especialidade) especialidade, 0 atendidos, COUNT(DISTINCT a.nm_paciente) total_pacientes_atendidos FROM tasy.agenda_consulta a, tasy.agenda b WHERE a.cd_agenda = b.cd_agenda AND b.ie_situacao = 'A' and trunc(a.dt_agenda) between :dt_inicial and :dt_final and ((b.CD_ESTABELECIMENTO = :cd_estab) or (:cd_estab = 0)) AND a.nm_paciente IS NOT NULL AND a.IE_STATUS_AGENDA = 'E' and a.cd_agenda = 7216 GROUP BY TO_CHAR(a.DT_AGENDA,'dd/mm/yyyy'), b.ds_curta, tasy.obter_desc_espec_agenda(b.cd_especialidade), obter_nome_estabelecimento(b.cd_estabelecimento) HAVING COUNT(DISTINCT a.nm_paciente) > :total_paciente Está exibindo como resultado duas linhas. Como agrupar para exibir 1 linha com as colunas "total_pacientes" e "total_pacientes_atendidos"
  14. Olá pessoal. Preciso fazer um Select Count, e um Setect Count com Group By numa tabela para pegar a quantidade total de registros. Exemplo: $estoque = "1" $var_total_geral=$pdo->prepare("select count(categoria) from loja_virtual WHERE estoque=:estoque"); $var_total_geral->bindValue(":estoque",$estoque); $var_total_geral->execute(); Depois preciso pegar e exibir a quantidade total do código acima, porém tem algum erro acima e não sei qual comando usar para exibir a quantidade total. Depois preciso fazer outros select agrupado, onde eu preciso saber as quantidade de registros de cada categoria. Exemplo: Categoria 1 ( 40 Registros ) Categoria 2 ( 32 Registros ) Categoria 3 ( 18 Registros ) Tentei isso abaixo: $var_quantidades=$pdo->prepare("select count(categoria) as total from loja_virtual WHERE estoque=:estoque group by categoria" ); $var_quantidades->bindValue(":estoque",$estoque); $var_quantidades->execute(); Como eu faço esse código acima funcionar e como exibo as quantidade agrupadas? Se alguém puder me ajudar, Obrigado! Fábio.
  15. Minha Sql traz mais de um registro ao realizar a consulta: SELECT XML.CHAVEACESSO, XML.CODEMP, XML.CODPARC, XML.CODTIPOPER, XML.CODUSUIMP, XML.CODUSUPROC, XML.CODVEND, XML.DETALHESIMPORTACAO, XML.DHIMPORT, XML.DHPROCESS, XML.IMPORTADOMDE, XML.NOMEARQUIVO, XML.NUARQUIVO, XML.NUMNOTA, XML.NUNOTA, XML.SITUACAOMDE, XML.SITUACAONFE, XML.STATUS, XML.DHEMISS, TEMXML FROM (SELECT (CASE WHEN XML IS NULL THEN 'NAO' ELSE 'SIM' END) AS TEMXML FROM TGFIXN), TGFIXN XML WHERE NUMNOTA=6511 GROUP BY XML.CHAVEACESSO, XML.CODEMP, XML.CODPARC, XML.CODTIPOPER, XML.CODUSUIMP, XML.CODUSUPROC, XML.CODVEND, XML.DETALHESIMPORTACAO, XML.DHIMPORT, XML.DHPROCESS, XML.IMPORTADOMDE, XML.NOMEARQUIVO, XML.NUARQUIVO, XML.NUMNOTA, XML.NUNOTA, XML.SITUACAOMDE, XML.SITUACAONFE, XML.STATUS, XML.TIPO, XML.DHEMISS, TEMXML A no registro CASE WHEN o resultado correto da funcionalidade seria SIM, só que o registro traz SIM e NAO duplicando o registro.
  16. Boa noite a todos! Preciso de uma Query que me retorne a soma de resultados por mês de uma consulta de um ano. Faço uma consulta de todos os registros num intervalo de um ano e preciso somar e agrupar os registros por mês. Tentei a seguinte Query: SELECT data, COUNT(data) AS repetidos FROM agendamentoconsulta WHERE data BETWEEN DATE('2017-01-01') AND DATE('2017-12-31') group by data, extract(MONTH from DATA) Ela soma os registros por dia porém não agrupa e soma eles por mês. Help me please rs Obrigado a todos!
  17. josePeixoto

    Erro 'Group By'

    Olá, alguém poderia me informar onde está o erro dessa consulta? SELECT DISTINCT relatorio.CD_RELATORIO, relatorio.DT_ATUALIZACAO, relatorio.DS_TITULO descricao, obter_usuario_pf(relatorio_documentacao.CD_PF_SOLIC) Solicitante, obter_usuario_pf(relatorio_documentacao.CD_PF_CRIADOR) Criador, wm_concat(perfil.ds_perfil) Perfil FROM relatorio INNER JOIN relatorio_documentacao ON relatorio.NM_USUARIO = relatorio_documentacao.NM_USUARIO INNER JOIN relatorio_perfil ON relatorio_documentacao.NR_SEQ_RELATORIO = relatorio_perfil.NR_SEQ_RELATORIO INNER JOIN PERFIL ON relatorio_perfil.cd_perfil = perfil.cd_perfil WHERE obter_usuario_pf(relatorio_documentacao.CD_PF_SOLIC) IS NOT NULL AND obter_usuario_pf(relatorio_documentacao.CD_PF_CRIADOR) IS NOT NULL AND relatorio.DT_ATUALIZACAO BETWEEN :dt_inicio AND :dt_fim GROUP BY perfil.ds_perfil, relatorio.CD_RELATORIO, relatorio.DT_ATUALIZACAO, relatorio.DS_TITULO ORDER BY 4,2,1 Ele está dando o erro: ORA-00979: não é uma expressão GROUP BY. Obrigado desde já!
  18. Jonas Tomazelli

    Dúvida GROUP BY com referencias trocadas

    Boa tarde pessoal, estou precisando fazer um SQL, mas não estou conseguindo finalizar, abaixo vou passar uma tabela como exemplo, então consideramos os seguintes dados: ID | MATRICULA | HORA | CODIGO 1 1212 10:00 999 2 1212 10:00 1 3 1212 10:00 10 4 1212 10:00 25 5 1212 10:00 50 6 1212 12:00 900 7 1212 13:00 901 Blz, eu preciso agrupar esse dados por MATRICULA e HORA, e preciso mostrar o CODIGO, mas tem que ser o mesmo código do menor ID, exemplo, essa tabela acima, agrupada como eu quero deveria ficar assim: ID | MATRICULA | HORA | CODIGO 1 1212 10:00 999 6 1212 12:00 900 7 1212 13:00 901 Espero ter sido claro. A principio parecia simples, estava resolvendo com a função MIN, mas o problema é que um ID 1 pode ter um código 900 e um ID 2 um menor.
  19. Oláa! Pessoal, imaginem que tenho uma tabela com vários registros, onde um campo será a referencia de agrupamento, por exemplo: - O campo categoria; - Vários produtos farão parte da categoria vendas, outro aluguel... - Quero q todos os registro dessa tabela, ou seja também os q não são categoria, sejam exibidos, porém de forma ordenada ou agrupada, pelo campo categoria.. - Por exemplo, todos os vendas, aparecerem um abaixo do outro, com os demais valores da tabela respectivos.. tentei assim mas não deu o que eu esperava: SELECT * FROM TABELA GROUP BY CAMPO Como resolver isso????
  20. Bom dia galera...Tudo bem... Pessoal estou com uma duvida, já pesquisei em alguns tópicos, mas não consegui solucionar o meu problema, se alguém puder me ajudar agradeço. Meu problema é o seguinte: Possuo uma tabela como a do exemplo abaixo onde possuo 25 itens, esta tabela eu uso para montar uma segunda tabela, ou seja com o id_relatorio eu alimento a tabela com o id_relacao_atividade, sendo assim o id_relatorio aparece "n" vezes na tabela relacao_atividade. Sendo assim eu necessito listar todos os ultimos registros da relacao_atividade que contenham apenas um iten id_relatorio, 'Se e somente se' atender aos seguintes requisitos: id_status = '1' AND (resp_1 = '1' OR resp_2 = '1' OR resp_3 = '1' OR resp_4 = '1') Ou seja, eu quero somente os ultimos registro de cada GROUP BY id_relatorio se e somente se atender a linha descrita acima. Exemplo reduzido da minha tabela: [id_relacao_atividade] - [id_relatorio] - [id_status] - [resp_1] - [resp_2] - [resp_3] - [resp_4] - [numero_linha] [ 1 ] - [ 1 ] - [ 2 ] - [ 1 ] - [ 1 ] - [ 0 ] - [ 0 ] - [ 1 ] [ 2 ] - [ 1 ] - [ 1 ] - [ 1 ] - [ 1 ] - [ 1 ] - [ 1 ] - [ 2 ] [ 3 ] - [ 2 ] - [ 3 ] - [ 3 ] - [ 1 ] - [ 0 ] - [ 0 ] - [ 1 ] [ 4 ] - [ 3 ] - [ 1 ] - [ 3 ] - [ 1 ] - [ 1 ] - [ 1 ] - [ 1 ] [ 5 ] - [ 3 ] - [ 2 ] - [ 1 ] - [ 1 ] - [ 1 ] - [ 1 ] - [ 2 ] Para que minha busca seja correta apenas os id_relacao_atividade 2 atende minha busca. O numero_linha deve ser o máximo valor dentro do requisitos de busca assim eu garanto qeu peguei o ultimo valor dentro dos requisitos. Ja tentei assim: SELCT MAX(numero_linha) FROM relacao_atividade WHERE id_status = '1' AND (resp_1 = '1' OR resp_2 = '1' OR resp_3 = '1' OR resp_4 = '1') GROUP BY id_relatorio Porem ele também me retorna valores que não são os últimos de cada id_relatorio. Por isso minha afirmação "Se e somente se" atender meus requisitos. Obrigado e até
  21. pablo joaquim

    Tratamento de COUNT

    Bom dia a todos, estou com um pequeno problema que não estou encontrando uma soluçao. O problema é o seguinte: Minha sql retorna alguns campos nos quais 2 deles são count, o problema é que como os campos tem uma relação um com o outros ele ta dobrando o valor do count. Segue sql: SELECT F.MATRICULA, VFI.QTD_AUTORIZACAO, AG.AGENTECONS_ID, V.VERBA_ID, F.FUNCIONARIO_ID, COUNT(MC.MATRICULA) AS QTD_LANCAMENTOS, COUNT(DISTINCT RV.RESERVA_MARGEM_ID) AS QTD_RESERVAS FROM MOVIMENTO_CARTAO_TEMP MC JOIN FUNCIONARIO F ON F.MATRICULA = MC.MATRICULA JOIN AGENTECONS AG ON AG.REFERENCIA = MC.REFERENCIA_AGENTE JOIN VW_FOLHA_ITENS VFI ON VFI.FUNCIONARIO_ID = F.FUNCIONARIO_ID AND VFI.TIPO_VERBA = 'CARTAO' AND VFI.AGENTECONS_ID = AG.AGENTECONS_ID JOIN VERBA V ON V.AGENTECONS_ID = AG.AGENTECONS_ID AND V.TIPO_VERBA = 'CARTAO' JOIN RESERVAMARGEM RV ON RV.FUNCIONARIO_ID = F.FUNCIONARIO_ID AND RV.AGENTECONS_ID = AG.AGENTECONS_ID AND RV.SITUACAO = 0 WHERE MC.HST_CARGA_DADOS_ID = 206 AND VFI.FOLHA_ID = 176 GROUP BY F.MATRICULA, VFI.QTD_AUTORIZACAO, AG.AGENTECONS_ID, F.FUNCIONARIO_ID, V.VERBA_ID HAVING COUNT(MC.MATRICULA) >= COUNT(distinct RV.RESERVA_MARGEM_ID); Resultado desta consulta: MATRICULA|| QTD_AUTORIZACAO ||QTD_CANCAMENTOS||QTD_RESERVAS 1733940/1-00 2 4 2 1268678/1-00 4 2 2 290912/1-00 2 1 1 520004/1-01 1 1 1 Conforme mostrado na tabela o problema consiste no seguinte: os valores do campo qtd_lancamentos estão duplicados, pois para cada valor no cammpo qtd_reserva ele esta dobrando o valor do campo qtd_lancamentos. ex: tenho um unico lançamento, porem tenho duas reservas, neste caso o resultado da consulta vai me retornar dois lançamentos e duas reservas. isso ocorre pelo fato de ter duas reservas na mesma matricula e tenho um unico lançamento, porem com o join ele duplica o lançamento para cada reserva. O que posso fazer para evitar isso? O resultado esperado é: Qtd_lancamentos 2 1 1 1 na mesma ordem da tabela anterior.
  22. lucianopva

    Group BY

    Boa tarde, estou com o seguinte problema, quero agrupar os registros de minha tabela mysql por data, sem soma de valores, e mostrando os resultados daquela respectiva data, tipo 07/01/2016 id - valor - data 1 100 2016-01-07[/size] 3 90 2016-01-07[/size] 5 80 2016-01-07[/size] 08/01/2016 id - valor - data 2 100 2016-01-08[/size] 4 90 2016-01-08[/size] 6 80 2016-01-08[/size] Estou fazendo a "chamada" desta maneira SELECT pr.*, tm.tipo_monitoramento_nome, tn.tipo_nome, en.especie_nome, vr.variacao_valor, us.colaborador FROM cad_monitoramento pr inner join cad_usuario_app us on (us.id = pr.usuario_id) inner join cad_tipo_monitoramento tm on (tm.tipo_monitoramento_id = pr.tipo_monitoramento_id) inner join cad_tipoespecie tn on (tn.tipo_id = pr.tipo_especie_id) inner join cad_especie en on (en.especie_id = pr.especie_id) inner join cad_variacaoespecie vr on (vr.variacao_id = pr.var_especie_id) WHERE ponto_talhao_id =:ponto_talhao_id GROUP BY data_hora Ele mostra apenas um registro por data, já tentei usar GROUP BY DATA_FORMAT E CAST, porem sem sucesso, alguém tem alguma sugestão? PS: a coluna data_hora é do tipo timestamp e os resultado são mostrado em tabelas, divididas por respectiva data
  23. O que eu quero é ocultar os títulos duplicados mais que os car_id do veículos permaneça! SELECT * from car_additional LEFT JOIN car_vehicles_and_items on car_vehicles_and_items.additional_id = car_additional.additional_id GROUP BY car_additional.additional_title Veja a imagem da query com Group By , aqui o resultado do car_id são 12. Veja a imagem da query sem Group By aqui o resultado do car_id são 16.
  24. Vagner_JSF

    Group by por coluna

    Boa noite, Poderiam me ajudar com a seguinte questão: Na query abaixo, gostaria de agrupar por todas as colunas, mesmo por descrição, queria trazer apenas a primeira descrição encontrada, como consigo fazer isso? select cf.cod, cf.cod_cliente, cf.descricao from cliente cf group by cf.cod, cf.cod_cliente
×

Important Information

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