null2007 1 Denunciar post Postado Julho 27, 2014 Olá amigos.. Até que enfim o site voltou ao ar rs... Seguinte.. Estou precisando fazer o seguinte: Tenho um SELECT que está funcionando da seguinte forma: E a coluna CD_STATUS da tabela TRAMITES, eu preciso que ele mostre sempre o MAX dela em um SELECT. Vou tentar ser mais claro: Tenho uma tabela (SA) que grava uma solicitacao de atendimento. E tenho uma outra tabela (TRAMITES) que eu cadastro os tramites de uma solicitacao. Ex: Usuário X cadastrou uma Solicitação de Atendimento nº 100 - Então o sistema grava este registro na tabela SA. Aí o usuário Y cadastrou um TRAMITE na solicitação nº 100. - O sistema grava este registro na tabela: TRAMITES Tenho o seguinte SELECT, que eu faço para juntar alguns dados e "esplodir" na tela: SELECT tramites.cd_status, sa.cd_solicitacao, sa.cd_usuario, usuarios.nome, sa.email, sa.cd_departamento, departamento.desc_departamento, sa.ramal, sa.cd_tipo, sa.solicitacao, tiposa.desc_tipo, DAY(sa.dt_cadastro) AS dia, DAYNAME(sa.dt_cadastro) AS semana, MONTH(sa.dt_cadastro) AS mes, YEAR(sa.dt_cadastro) AS ano, DATE_FORMAT(sa.dt_cadastro,'%H:%i:%s') AS hora FROM Sa JOIN usuarios JOIN tiposa JOIN departamento JOIN tramites WHERE sa.cd_status NOT IN ('8', '9') AND sa.cd_usuario = usuarios.cd_usuario AND sa.cd_tipo = tiposa.cd_tipo AND sa.cd_departamento = departamento.cd_departamento GROUP BY cd_solicitacao E o que eu preciso é que nesta primeira coluna (tramites.cd_status) da tabela tramites, mostre sempre o MAX(cd_status) da tabela tramites. Entenderam? Creio que não seja difícil... Abraço a todos! Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Julho 27, 2014 http://forum.imasters.com.br/topic/500259-select-com-max-com-valores-diferentes/ http://forum.imasters.com.br/topic/512214-selecionando-item-max/ Subselect com MAX, ajudou ? Compartilhar este post Link para o post Compartilhar em outros sites
null2007 1 Denunciar post Postado Julho 27, 2014 Olá Motta, obrigado pelo empenho em ajudar mono.. Não consegui... Veja bem, eu não quero o retorno de apenas um item. Eu quero o retorno de TODOS os itens da tabela SA, com o MAX da coluna CD_STATUS da tabela TRAMITES em cada linha (retorno)... Entendeu? Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Julho 28, 2014 Estou num tablet , amanhã tento responder. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Julho 28, 2014 tente isto ... SELECT tramites.cd_status, sa.cd_solicitacao, sa.cd_usuario, usuarios.nome, sa.email, sa.cd_departamento, departamento.desc_departamento, sa.ramal, sa.cd_tipo, sa.solicitacao, tiposa.desc_tipo, DAY(sa.dt_cadastro) AS dia, DAYNAME(sa.dt_cadastro) AS semana, MONTH(sa.dt_cadastro) AS mes, YEAR(sa.dt_cadastro) AS ano, DATE_FORMAT(sa.dt_cadastro,'%H:%i:%s') AS hora FROM sa , usuarios , tiposa , departamento , tramites WHERE sa.cd_status NOT IN ('8', '9') AND sa.cd_usuario = usuarios.cd_usuario AND sa.cd_tipo = tiposa.cd_tipo AND sa.cd_departamento = departamento.cd_departamento And tramites.cd_status = (select max(tramites2.cd_status) from tramites tramites2 where tramites2.cd_usuario =tramites2.cd_usuario) GROUP BY cd_solicitacao Compartilhar este post Link para o post Compartilhar em outros sites
null2007 1 Denunciar post Postado Julho 28, 2014 Não deu certo! Retornou a coluna tramites.cd_status, todas as linhas com o valor 4. Vou enviar a estrutura do meu DB para tentar facilitar ok... TABELA TRAMITES create table `tramites` ( `cd_tramite` double , `cd_solicitacao` double , `cd_status` double , `cd_usuario` double , `desc_tramite` blob , `situacao` varchar (3), `dt_cadastro` timestamp ); insert into `tramites` (`cd_tramite`, `cd_solicitacao`, `cd_status`, `cd_usuario`, `desc_tramite`, `situacao`, `dt_cadastro`) values('1','3','2','2','Em análise.','1','2014-07-24 20:56:28'); TABELA SA create table `sa` ( `cd_solicitacao` double , `cd_usuario` double , `email` varchar (90), `cd_departamento` double , `ramal` Decimal (12), `cd_tipo` double , `solicitacao` varchar (3000), `cd_status` double , `dt_cadastro` timestamp ); insert into `sa` (`cd_solicitacao`, `cd_usuario`, `email`, `cd_departamento`, `ramal`, `cd_tipo`, `solicitacao`, `cd_status`, `dt_cadastro`) values('3','3','teste@teste.com.br','2','6353','4','Texto teste 01.......','4','2014-07-27 21:32:15'); Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Julho 28, 2014 Qual a coluna de tramites que se quer o valor máximo ? Compartilhar este post Link para o post Compartilhar em outros sites
null2007 1 Denunciar post Postado Julho 28, 2014 cd_status Em cada linha.. A coluna que vai realizar o vínculo é a cd_solicitacao. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Julho 29, 2014 ... And tramites.cd_status = (select max(tramites2.cd_status) from tramites tramites2 where tramites2.cd_usuario =tramites.cd_usuario) GROUP BY cd_solicitacao Tinha um erro no subselect. Compartilhar este post Link para o post Compartilhar em outros sites
null2007 1 Denunciar post Postado Julho 31, 2014 Motta, tentei desta forma (que foi como entendi): SELECT tramites.cd_status, sa.cd_solicitacao, sa.cd_usuario, usuarios.nome, sa.email, sa.cd_departamento, departamento.desc_departamento, sa.ramal, sa.cd_tipo, sa.solicitacao, tiposa.desc_tipo, DAY(sa.dt_cadastro) AS dia, DAYNAME(sa.dt_cadastro) AS semana, MONTH(sa.dt_cadastro) AS mes, YEAR(sa.dt_cadastro) AS ano, DATE_FORMAT(sa.dt_cadastro,'%H:%i:%s') AS hora FROM sa , usuarios , tiposa , departamento , tramites WHERE sa.cd_status NOT IN ('8', '9') AND sa.cd_usuario = usuarios.cd_usuario AND sa.cd_tipo = tiposa.cd_tipo AND sa.cd_departamento = departamento.cd_departamento And tramites.cd_status = (select max(tramites2.cd_status) from tramites tramites2 where tramites2.cd_usuario =tramites2.cd_usuario) And tramites.cd_status = (select max(tramites2.cd_status) from tramites tramites2 where tramites2.cd_usuario =tramites.cd_usuario) GROUP BY cd_solicitacao Porém não está retornando certo. A coluna retorna todas as linhas com o cód 10 Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Julho 31, 2014 Mas não se quer o maior cd_status ?! Compartilhar este post Link para o post Compartilhar em outros sites
null2007 1 Denunciar post Postado Julho 31, 2014 Sim, só que DE CADA LINHA..... E algumas nem terá retorno, será null... Entende? Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Julho 31, 2014 Não, publica um exemplo simples de como sai e de como deve sair. Compartilhar este post Link para o post Compartilhar em outros sites