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

Renato Santos renato.cron em gmail.com
Segunda Novembro 19 10:11:48 PST 2012


O banco tá com registros Max com a mesma data aí ferra na hora de juntar

Tem q criar um id e pegar o Max do id do Max de cada data/func
Em 19/11/2012 16:08, "Lucas Moraes" <lucastiagodemoraes em gmail.com> escreveu:

> 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
> > ************************************************
> _______________________________________________
> 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/679e049d/attachment-0001.html>


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