[Cascavel-pm] Digest Cascavel-pm, volume 410, assunto 5

Lucas Moraes lucastiagodemoraes em gmail.com
Segunda Novembro 19 10:07:48 PST 2012


Tente usar DISTINCT.

Em 19 de novembro de 2012 16:00,  <cascavel-pm-request em pm.org> escreveu:
> Enviar submissões para a lista de discussão Cascavel-pm para
>         cascavel-pm em pm.org
>
> Para se cadastrar ou descadastrar via WWW, visite o endereço
>         http://mail.pm.org/mailman/listinfo/cascavel-pm
> ou, via email, envie uma mensagem com a palavra 'help' no assunto ou
> corpo da mensagem para
>         cascavel-pm-request em pm.org
>
> Você poderá entrar em contato com a pessoa que gerencia a lista pelo
> endereço
>         cascavel-pm-owner em pm.org
>
> Quando responder, por favor edite sua linha Assunto assim ela será
> mais específica que "Re: Contents of Cascavel-pm digest..."
>
>
> Tópicos de Hoje:
>
>    1. Re: OFF - Select Mysql (Eduardo Maia)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Mon, 19 Nov 2012 14:59:57 -0300
> From: Eduardo Maia <maia em eduardomaia.com>
> To: sammuel.souza em gmail.com, Cascavel Perl Mongers
>         <cascavel-pm em pm.org>
> Subject: Re: [Cascavel-pm] OFF - Select Mysql
> Message-ID:
>         <CAGore=V5VtEwau0ehK_=z8_tSWuWiV7GB7x9GM+KWnW7U5s-Cg em mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> Ah, eu havia entendido errado!
>
> SELECT funcionario, cd_Funcao, cd_situ, MAX(data_ocorrencia)
> FROM funcionarios
> GROUP BY funcionario, cd_Funcao, cd_situ
>
> Se ainda não foi possível resolver sua questão, por favor envia um desc das
> tabelas que entram nessa query.
>
> Abs
>
>
> 2012/11/19 Sammuel Souza <sammuel.souza em gmail.com>
>
>> Boa Tarde,
>>
>> eu quero mostrar todos os usuarios e nao somente 3 registro.
>>
>>
>> select * from uncionario where cd_situ<>99 group by cd_funcionario;
>>
>> pois toda vez que altera os dados ele cria um registro novo com todas as
>> informações colocando apenas a data no data_ocorrencia
>>
>> Assim se o funcionario foi demitido ou retornou para empresa, somente com
>> o ultimo registro no data_ocorrencia.
>>
>> Se eu colocar limit 1
>>
>> ele nao vai mostrar todos os funcionarios somente o primeiro.
>>
>> Em 19 de novembro de 2012 13:58, Eduardo Maia <maia em eduardomaia.com>escreveu:
>>
>> A solicitação do desenvolvedor foi:
>>>
>>>
>>> "Preciso fazer um select onde mostra dos dados *do ultimo registro*."
>>>
>>> "mostra todos os registro em ordem de data, porem *quero somente o ultimo
>>> *."
>>>
>>> Para trazer apenas um registro, o último ou o primeiro (dependendo do
>>> order by), utiliza-se em MySQL o *LIMIT*. Dei inclusive dois exemplos no
>>> email anterior.
>>>
>>>
>>> select * from produto order by rand() *limit 1*
>>>
>>> select nome from lojista where email like '%gmail%' *limit 1*
>>>
>>> É possível colocar (por exemplo) limit 3 se for para trazer 3 registros -
>>> mais uma vez, os 3 últimos ou 3 primeiros, dependendo do order by.
>>>
>>> Não ficou claro? Viajei em alguma coisa?
>>>
>>>
>>>
>>> 2012/11/19 Renato Santos <renato.cron em gmail.com>
>>>
>>>> ???!
>>>> Em 19/11/2012 12:05, "Eduardo Maia" <maia em eduardomaia.com> escreveu:
>>>>
>>>> Sugiro utilizar *LIMIT 1*
>>>>>
>>>>> select * from produto order by rand() limit 1
>>>>>
>>>>> select nome from lojista where email like '%gmail%' limit 1
>>>>>
>>>>> Abs
>>>>>
>>>>>
>>>>> 2012/11/18 Renato Santos <renato.cron em gmail.com>
>>>>>
>>>>>> pensei q vc já tinha 2 tabelas separadas com o funcionario.
>>>>>>
>>>>>> já que não tem, tem q agrupar por todas as colunas.
>>>>>>
>>>>>> SELECT a.cd_funcionario,
>>>>>>        a.nm_funcionario,
>>>>>>        a.cd_cargofuncao,
>>>>>>        a.cd_situacao,
>>>>>>        a.dt_admissao,
>>>>>>        a.dt_ocorrencia_aud
>>>>>> FROM   aud_folhfuncionario AS a
>>>>>>        INNER JOIN (SELECT *Max*(dt_ocorrencia_aud)AS dt_ocorrencia_aud
>>>>>> ,
>>>>>>                           cd_funcionario,
>>>>>>                           cd_cargofuncao,
>>>>>>                           cd_situacao
>>>>>>                    FROM   aud_folhfuncionario
>>>>>>                    GROUP  BY cd_funcionario) AS b
>>>>>>                ON a.dt_ocorrencia_aud = b.dt_ocorrencia_aud
>>>>>>                   AND a.cd_cargofuncao = b.cd_cargofuncao
>>>>>>                   AND a.cd_situacao = b.cd_situacao
>>>>>> WHERE  a.cd_situacao <> 9
>>>>>> *GROUP BY 1,2,3,4,5,6; *
>>>>>>
>>>>>>
>>>>>> 2012/11/18 Sammuel Souza <sammuel.souza em gmail.com>
>>>>>>
>>>>>>> Consegui pegar o ultimo registro porem mostra todos
>>>>>>>
>>>>>>> select
>>>>>>> a.cd_funcionario,a.nm_funcionario,a.cd_cargofuncao,a.cd_Situacao,a.Dt_admissao,a.dt_ocorrencia_aud
>>>>>>> from AUD_FOLHFuncionario as a inner join (select max(dt_ocorrencia_AUD)as
>>>>>>> dt_ocorrencia_aud,cd_funcionario,cd_cargofuncao,cd_Situacao from
>>>>>>> AUD_FOLHFuncionario group by cd_funcionario) as b on a.dt_ocorrencia_aud =
>>>>>>> b.dt_ocorrencia_aud and a.cd_cargofuncao=b.cd_cargofuncao and
>>>>>>> a.cd_Situacao=b.cd_Situacao where a.cd_Situacao<>9;
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Sammuel
>>>>>>>
>>>>>>> Em 18 de novembro de 2012 16:56, Renato Santos <renato.cron em gmail.com
>>>>>>> > escreveu:
>>>>>>>
>>>>>>> Uma maneira de fazer isso é fazer uma subconsulta sobre um select com
>>>>>>>> o id do funcionario + a ultima data.
>>>>>>>>
>>>>>>>> SELECT *
>>>>>>>> FROM ...
>>>>>>>> WHERE
>>>>>>>> (cd, data_ocorrencia) = (
>>>>>>>>     SELECT cd, max(data_ocorrencia)
>>>>>>>>     FROM ..
>>>>>>>>     GROUP BY cd;
>>>>>>>> )
>>>>>>>>
>>>>>>>> porém nem todos os bancos suportam esse tipo de comparação em
>>>>>>>> conjunto. Postgres funciona.
>>>>>>>>
>>>>>>>> Em mysql talvez você precise colocar isso num inner join:
>>>>>>>> SELECT *
>>>>>>>> FROM tabela_func me, outras..
>>>>>>>> INNER JOIN (cd, data_ocorrencia) = (
>>>>>>>>     SELECT cd, max(data_ocorrencia)
>>>>>>>>     FROM ..
>>>>>>>>     GROUP BY cd;
>>>>>>>> ) sub ON (sub.cd = me.cd AND sub.max = me.data_ocorrencia)
>>>>>>>>
>>>>>>>>  Boa sorte,
>>>>>>>>
>>>>>>>> nao cheguei a testar, só é a ideia mesmo
>>>>>>>>
>>>>>>>> 2012/11/18 Sammuel Souza <sammuel.souza em gmail.com>
>>>>>>>>
>>>>>>>>> Boa Tarde,
>>>>>>>>>
>>>>>>>>> sei que o forum é de PERL porem nao participo de forum MySQL
>>>>>>>>>
>>>>>>>>> Caso alguem puder me ajudar.
>>>>>>>>>
>>>>>>>>> cd    funcionario        cd_Funcao    cd_situ        data_ocorrencia
>>>>>>>>> 2    ANTANA ODESTO        62        1        2004-08-09 09:30:33
>>>>>>>>> 2    ANTANA ODESTO        78        1        2009-05-21 10:06:24
>>>>>>>>> 2    ANTANA ODESTO        62        1        2010-10-26 08:43:12
>>>>>>>>> 6    ALTER LVES DO        55        1        2005-04-15 10:44:14
>>>>>>>>> 6    ALTER LVES DO        84        1        2012-01-24 17:16:40
>>>>>>>>> 6    ALTER LVES DO        84        1        2012-09-06 16:53:47
>>>>>>>>> 11    NESIO ONSALVES        60        1        2004-08-09 11:59:56
>>>>>>>>> 11    NESIO ONSALVES        60        99        2010-08-25 10:43:32
>>>>>>>>>
>>>>>>>>> a tabela Funcionarios cria outro registro para o funcionario quando
>>>>>>>>> muda os dados assim incluindo a data da alteracao, pois o registro que
>>>>>>>>> serve é o com a data maior.
>>>>>>>>>
>>>>>>>>> Preciso fazer um select onde mostra dos dados do ultimo registro.
>>>>>>>>>
>>>>>>>>> Group by
>>>>>>>>>
>>>>>>>>> select * from uncionario where cd_situ<>99 group by cd_funcionario;
>>>>>>>>>
>>>>>>>>> mostra assim:
>>>>>>>>> 2    ANTANA ODESTO        62        1        2004-08-09 09:30:33
>>>>>>>>> 6    ALTER LVES DO        55        1        2005-04-15 10:44:14
>>>>>>>>> 11    NESIO ONSALVES        60        1        2004-08-09 11:59:56
>>>>>>>>>
>>>>>>>>> select * from uncionario where cd_situ<>99 group by
>>>>>>>>> cd_funcionario,data_ocorrencia DESC;
>>>>>>>>>
>>>>>>>>> mostra todos os registro em ordem de data, porem quero somente o
>>>>>>>>> ultimo.
>>>>>>>>>
>>>>>>>>> Alguem poderia me ajudar?
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> Cascavel-pm mailing list
>>>>>>>>> Cascavel-pm em pm.org
>>>>>>>>> http://mail.pm.org/mailman/listinfo/cascavel-pm
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Saravá,
>>>>>>>> Renato CRON
>>>>>>>> http://www.renatocron.com/blog/
>>>>>>>> @renato_cron <http://twitter.com/#!/renato_cron>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> _____________________
>>>>>>>  ????µ???
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Cascavel-pm mailing list
>>>>>>> Cascavel-pm em pm.org
>>>>>>> http://mail.pm.org/mailman/listinfo/cascavel-pm
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Saravá,
>>>>>> Renato CRON
>>>>>> http://www.renatocron.com/blog/
>>>>>> @renato_cron <http://twitter.com/#!/renato_cron>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Cascavel-pm mailing list
>>>>>> Cascavel-pm em pm.org
>>>>>> http://mail.pm.org/mailman/listinfo/cascavel-pm
>>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Cascavel-pm mailing list
>>>>> Cascavel-pm em pm.org
>>>>> http://mail.pm.org/mailman/listinfo/cascavel-pm
>>>>>
>>>>
>>>> _______________________________________________
>>>> Cascavel-pm mailing list
>>>> Cascavel-pm em pm.org
>>>> http://mail.pm.org/mailman/listinfo/cascavel-pm
>>>>
>>>
>>>
>>> _______________________________________________
>>> Cascavel-pm mailing list
>>> Cascavel-pm em pm.org
>>> http://mail.pm.org/mailman/listinfo/cascavel-pm
>>>
>>
>>
>>
>> --
>> _____________________
>>  ????µ???
>>
>>
>> _______________________________________________
>> Cascavel-pm mailing list
>> Cascavel-pm em pm.org
>> http://mail.pm.org/mailman/listinfo/cascavel-pm
>>
> -------------- Próxima Parte ----------
> Um anexo em HTML foi limpo...
> URL: <http://mail.pm.org/pipermail/cascavel-pm/attachments/20121119/26e774af/attachment.html>
>
> ------------------------------
>
> Subject: Legenda do Digest
>
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>
> ------------------------------
>
> Fim da Digest Cascavel-pm, volume 410, assunto 5
> ************************************************


Mais detalhes sobre a lista de discussão Cascavel-pm