From sammuel.souza em gmail.com Sun Nov 18 11:47:53 2012 From: sammuel.souza em gmail.com (Sammuel Souza) Date: Sun, 18 Nov 2012 16:47:53 -0300 Subject: [Cascavel-pm] OFF - Select Mysql Message-ID: 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? -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From renato.cron em gmail.com Sun Nov 18 11:56:11 2012 From: renato.cron em gmail.com (Renato Santos) Date: Sun, 18 Nov 2012 17:56:11 -0200 Subject: [Cascavel-pm] OFF - Select Mysql In-Reply-To: References: Message-ID: 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 > 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 -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From sammuel.souza em gmail.com Sun Nov 18 13:21:35 2012 From: sammuel.souza em gmail.com (Sammuel Souza) Date: Sun, 18 Nov 2012 18:21:35 -0300 Subject: [Cascavel-pm] OFF - Select Mysql In-Reply-To: References: Message-ID: 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 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 > >> 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 > > -- _____________________ ????µ??? -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From renato.cron em gmail.com Sun Nov 18 13:28:05 2012 From: renato.cron em gmail.com (Renato Santos) Date: Sun, 18 Nov 2012 19:28:05 -0200 Subject: [Cascavel-pm] OFF - Select Mysql In-Reply-To: References: Message-ID: 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 > 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 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 >> >>> 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 >> >> > > > -- > _____________________ > ????µ??? > > > _______________________________________________ > 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 -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From renato.cron em gmail.com Sun Nov 18 14:17:47 2012 From: renato.cron em gmail.com (Renato Santos) Date: Sun, 18 Nov 2012 20:17:47 -0200 Subject: [Cascavel-pm] OFF - Select Mysql In-Reply-To: References: Message-ID: CREATE TEMP TABLE _tmp AS SELECT *Max*(dt_ocorrencia_aud) AS max, cd_funcionario FROM aud_folhfuncionario GROUP BY cd_funcionario; SELECT * FROM aud_folhfuncionario AS a INNER JOIN _tmp AS b ON a.dt_ocorrencia_aud = b.max AND a.cd_funcionario = b.cd_funcionario WHERE a.cd_situacao <> 9 2012/11/18 Renato Santos > 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 > >> 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 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 >>> >>>> 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 >>> >>> >> >> >> -- >> _____________________ >> ????µ??? >> >> >> _______________________________________________ >> 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 > > -- Saravá, Renato CRON http://www.renatocron.com/blog/ @renato_cron -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From maia em eduardomaia.com Mon Nov 19 06:04:50 2012 From: maia em eduardomaia.com (Eduardo Maia) Date: Mon, 19 Nov 2012 11:04:50 -0300 Subject: [Cascavel-pm] OFF - Select Mysql In-Reply-To: References: Message-ID: 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 > 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 > >> 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 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 >>> >>>> 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 >>> >>> >> >> >> -- >> _____________________ >> ????µ??? >> >> >> _______________________________________________ >> 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 > > > _______________________________________________ > 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: From renato.cron em gmail.com Mon Nov 19 07:04:42 2012 From: renato.cron em gmail.com (Renato Santos) Date: Mon, 19 Nov 2012 13:04:42 -0200 Subject: [Cascavel-pm] OFF - Select Mysql In-Reply-To: References: Message-ID: ???! Em 19/11/2012 12:05, "Eduardo Maia" 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 > >> 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 >> >>> 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 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 >>>> >>>>> 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 >>>> >>>> >>> >>> >>> -- >>> _____________________ >>> ????µ??? >>> >>> >>> _______________________________________________ >>> 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 >> >> >> _______________________________________________ >> 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: From maia em eduardomaia.com Mon Nov 19 08:58:56 2012 From: maia em eduardomaia.com (Eduardo Maia) Date: Mon, 19 Nov 2012 13:58:56 -0300 Subject: [Cascavel-pm] OFF - Select Mysql In-Reply-To: References: Message-ID: 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 > ???! > Em 19/11/2012 12:05, "Eduardo Maia" 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 >> >>> 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 >>> >>>> 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 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 >>>>> >>>>>> 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 >>>>> >>>>> >>>> >>>> >>>> -- >>>> _____________________ >>>> ????µ??? >>>> >>>> >>>> _______________________________________________ >>>> 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 >>> >>> >>> _______________________________________________ >>> 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: From sammuel.souza em gmail.com Mon Nov 19 09:25:05 2012 From: sammuel.souza em gmail.com (Sammuel Souza) Date: Mon, 19 Nov 2012 14:25:05 -0300 Subject: [Cascavel-pm] OFF - Select Mysql In-Reply-To: References: Message-ID: 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 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 > >> ???! >> Em 19/11/2012 12:05, "Eduardo Maia" 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 >>> >>>> 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 >>>> >>>>> 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 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 >>>>>> >>>>>>> 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 >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> _____________________ >>>>> ????µ??? >>>>> >>>>> >>>>> _______________________________________________ >>>>> 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 >>>> >>>> >>>> _______________________________________________ >>>> 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: From maia em eduardomaia.com Mon Nov 19 09:59:57 2012 From: maia em eduardomaia.com (Eduardo Maia) Date: Mon, 19 Nov 2012 14:59:57 -0300 Subject: [Cascavel-pm] OFF - Select Mysql In-Reply-To: References: Message-ID: 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 > 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 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 >> >>> ???! >>> Em 19/11/2012 12:05, "Eduardo Maia" 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 >>>> >>>>> 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 >>>>> >>>>>> 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 >>>>> > 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 >>>>>>> >>>>>>>> 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 >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> _____________________ >>>>>> ????µ??? >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> 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 >>>>> >>>>> >>>>> _______________________________________________ >>>>> 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: From lucastiagodemoraes em gmail.com Mon Nov 19 10:07:48 2012 From: lucastiagodemoraes em gmail.com (Lucas Moraes) Date: Mon, 19 Nov 2012 16:07:48 -0200 Subject: [Cascavel-pm] Digest Cascavel-pm, volume 410, assunto 5 In-Reply-To: References: Message-ID: Tente usar DISTINCT. Em 19 de novembro de 2012 16:00, 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 > To: sammuel.souza em gmail.com, Cascavel Perl Mongers > > Subject: Re: [Cascavel-pm] OFF - Select Mysql > Message-ID: > > 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 > >> 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 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 >>> >>>> ???! >>>> Em 19/11/2012 12:05, "Eduardo Maia" 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 >>>>> >>>>>> 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 >>>>>> >>>>>>> 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 >>>>>> > 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 >>>>>>>> >>>>>>>>> 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 >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> _____________________ >>>>>>> ????µ??? >>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> 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 >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> 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: > > ------------------------------ > > 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 > ************************************************ From renato.cron em gmail.com Mon Nov 19 10:11:48 2012 From: renato.cron em gmail.com (Renato Santos) Date: Mon, 19 Nov 2012 16:11:48 -0200 Subject: [Cascavel-pm] Digest Cascavel-pm, volume 410, assunto 5 In-Reply-To: References: Message-ID: 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" escreveu: > Tente usar DISTINCT. > > Em 19 de novembro de 2012 16:00, 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 > > To: sammuel.souza em gmail.com, Cascavel Perl Mongers > > > > Subject: Re: [Cascavel-pm] OFF - Select Mysql > > Message-ID: > > 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 > > > >> 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 >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 > >>> > >>>> ???! > >>>> Em 19/11/2012 12:05, "Eduardo Maia" 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 > >>>>> > >>>>>> 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 > >>>>>> > >>>>>>> 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 > >>>>>>>> > >>>>>>>>> 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 > >>>>>>>> > >>>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> -- > >>>>>>> _____________________ > >>>>>>> ????µ??? > >>>>>>> > >>>>>>> > >>>>>>> _______________________________________________ > >>>>>>> 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 > >>>>>> > >>>>>> > >>>>>> _______________________________________________ > >>>>>> 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: From sammuel.souza em gmail.com Mon Nov 19 16:38:53 2012 From: sammuel.souza em gmail.com (Sammuel Souza) Date: Mon, 19 Nov 2012 21:38:53 -0300 Subject: [Cascavel-pm] Criptografar e Descripotografar Message-ID: Boa Noite, tem como Criptografar e Descriptografar uma String sem precisar instalar modulo?? exemplo: cryp("aaa","chave"); exemplo: decryp("ZSASAX004","chave"); -- _____________________ ????µ??? -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From leprevostfv em gmail.com Mon Nov 19 16:44:27 2012 From: leprevostfv em gmail.com (Felipe Leprevost) Date: Tue, 20 Nov 2012 00:44:27 +0000 Subject: [Cascavel-pm] Criptografar e Descripotografar Message-ID: <-8963768206792463360@unknownmsgid> Existe uma função chamada crypt, que cria um digest de uma string . A questão é que a crypt não descriptografa, você pode usá-la para comparar strings como por exemplo senhas. abraços. Felipe da Veiga Leprevost Laboratory for Proteomics and Protein Engineering. *From:* Sammuel Souza *Sent:* ?November? ?19?, ?2012 ?10?:?39? ?PM *To:* Cascavel Perl Mongers *Subject:* [Cascavel-pm] Criptografar e Descripotografar Boa Noite, tem como Criptografar e Descriptografar uma String sem precisar instalar modulo?? exemplo: cryp("aaa","chave"); exemplo: decryp("ZSASAX004","chave"); -- _____________________ ????µ??? _______________________________________________ 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: From leonardo em ruoso.com Mon Nov 19 17:42:26 2012 From: leonardo em ruoso.com (Leonardo Ruoso) Date: Mon, 19 Nov 2012 23:42:26 -0200 Subject: [Cascavel-pm] Criptografar e Descripotografar In-Reply-To: References: Message-ID: É improvável que você obtenha uma resposta satisfatória para um assunto tão abrangente e variado com tão pouca informação. Salvo a informação que o Felipe já deu, que crypt não deve atender à sua necessidade: http://perldoc.perl.org/functions/crypt.html Pessoalmente eu não só usaria um módulo como preferencialmente usaria um módulo wrapper para a openssl. Mas talvez você só queira «dificultar» um pouco a leitura dos dados? Supondo que HTTPS não seja suficiente também! Abraços, Em 19 de novembro de 2012 22:38, Sammuel Souza escreveu: > Boa Noite, > > tem como Criptografar e Descriptografar uma String sem precisar instalar > modulo?? > > exemplo: cryp("aaa","chave"); > exemplo: decryp("ZSASAX004","chave"); > > -- > _____________________ > ????µ??? > > > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm > -- Leonardo Ruoso Journalist, Perl developer and business consultant Media, UFC/2006; Telecom, IFCE/1998 -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From ricardostock em bol.com.br Tue Nov 20 07:33:12 2012 From: ricardostock em bol.com.br (Ricardo Stock) Date: Tue, 20 Nov 2012 12:33:12 -0300 Subject: [Cascavel-pm] Criptografar e Descripotografar References: Message-ID: No cpan tem algo que pode te ajudar. da uma olhada neste modulo Digest::MD5::Reverse "eu nunca o usei" Ricardo Stock www.stocksistemas.com.br ----- Original Message ----- From: Sammuel Souza To: Cascavel Perl Mongers Sent: Monday, November 19, 2012 9:38 PM Subject: [Cascavel-pm] Criptografar e Descripotografar Boa Noite, tem como Criptografar e Descriptografar uma String sem precisar instalar modulo?? exemplo: cryp("aaa","chave"); exemplo: decryp("ZSASAX004","chave"); -- _____________________ ????µ??? _______________________________________________ Cascavel-pm mailing list Cascavel-pm em pm.org http://mail.pm.org/mailman/listinfo/cascavel-pm From sammuel.souza em gmail.com Sat Nov 24 11:34:47 2012 From: sammuel.souza em gmail.com (Sammuel Souza) Date: Sat, 24 Nov 2012 15:34:47 -0400 Subject: [Cascavel-pm] OFF Microsoft SQL Server Message-ID: Boa Tarde, tem algum comando ou programa que converta query SQL Server para mysql? Sammuel -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From blabos em gmail.com Sat Nov 24 11:54:48 2012 From: blabos em gmail.com (Blabos de Blebe) Date: Sat, 24 Nov 2012 17:54:48 -0200 Subject: [Cascavel-pm] OFF Microsoft SQL Server In-Reply-To: References: Message-ID: Por quê? 2012/11/24 Sammuel Souza : > Boa Tarde, > > tem algum comando ou programa > > que converta query SQL Server para mysql? > > Sammuel > > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm em pm.org > http://mail.pm.org/mailman/listinfo/cascavel-pm From leonardo em ruoso.com Sat Nov 24 11:59:19 2012 From: leonardo em ruoso.com (Leonardo Ruoso) Date: Sat, 24 Nov 2012 17:59:19 -0200 Subject: [Cascavel-pm] OFF Microsoft SQL Server In-Reply-To: References: Message-ID: Você quer migrar dados do SQL Server para o MySQL ou quer converter queries dentro de uma aplicação? Em 24 de novembro de 2012 17:54, Blabos de Blebe escreveu: > Por quê? > > > 2012/11/24 Sammuel Souza : > > Boa Tarde, > > > > tem algum comando ou programa > > > > que converta query SQL Server para mysql? > > > > Sammuel > > > > _______________________________________________ > > 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 > -- Leonardo Ruoso Journalist, Perl developer and business consultant Media, UFC/2006; Telecom, IFCE/1998 -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From sammuel.souza em gmail.com Sat Nov 24 12:09:16 2012 From: sammuel.souza em gmail.com (Sammuel Souza) Date: Sat, 24 Nov 2012 16:09:16 -0400 Subject: [Cascavel-pm] OFF Microsoft SQL Server In-Reply-To: References: Message-ID: Tenho a seguinte query no SQL Server - Rodando no sistema local. Select COUNT(*) as Qtde FROM Dep WHERE cd_cecam = 1823 AND cd_funcionario = 6 AND ((cd_TpIncCalcDep IN ('S','I')) AND (( (cd_Grau IN ('A', 'F')) AND (GrauInstruc IN (6, 7, 8)) AND (DateDiff(yy, Nascimento, GETDATE()) <= 24)) OR ( (Grau IN ('A', 'F')) AND (DateDiff(yy, Nascimento, GETDATE()) <= 21)) OR (GrauParente IN ('E', 'P')) OR (fl_Invalidez = 'S')) OR (cd_TpIncCalcDep = 'G'))"; Todo banco de dados foi convertido para mysql para executar via web Seria possível uma conversão da query toda? Achei programas + são pagos. Tem algum programa free? Em 24 de novembro de 2012 15:59, Leonardo Ruoso escreveu: > Você quer migrar dados do SQL Server para o MySQL ou quer converter > queries dentro de uma aplicação? > > > Em 24 de novembro de 2012 17:54, Blabos de Blebe escreveu: > > Por quê? >> >> >> 2012/11/24 Sammuel Souza : >> > Boa Tarde, >> > >> > tem algum comando ou programa >> > >> > que converta query SQL Server para mysql? >> > >> > Sammuel >> > >> > _______________________________________________ >> > 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 >> > > > > -- > Leonardo Ruoso > Journalist, Perl developer and business consultant > Media, UFC/2006; Telecom, IFCE/1998 > > _______________________________________________ > 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: From breno em rio.pm.org Sat Nov 24 16:32:54 2012 From: breno em rio.pm.org (breno) Date: Sat, 24 Nov 2012 22:32:54 -0200 Subject: [Cascavel-pm] OFF Microsoft SQL Server In-Reply-To: References: Message-ID: Já experimentou o SQL::Translator? https://metacpan.org/module/sqlt []s -b 2012/11/24 Sammuel Souza : > Tenho a seguinte query no SQL Server - Rodando no sistema local. > Select COUNT(*) as Qtde FROM Dep WHERE cd_cecam = 1823 AND cd_funcionario > = 6 AND ((cd_TpIncCalcDep IN ('S','I')) AND (( (cd_Grau IN ('A', 'F')) > AND (GrauInstruc IN (6, 7, 8)) AND (DateDiff(yy, Nascimento, GETDATE()) <= > 24)) OR ( (Grau IN ('A', 'F')) AND (DateDiff(yy, Nascimento, GETDATE()) > <= 21)) OR (GrauParente IN ('E', 'P')) OR (fl_Invalidez = 'S')) OR > (cd_TpIncCalcDep = 'G'))"; > > Todo banco de dados foi convertido para mysql para executar via web > > Seria possível uma conversão da query toda? > > Achei programas + são pagos. > > Tem algum programa free? > > Em 24 de novembro de 2012 15:59, Leonardo Ruoso > escreveu: > >> Você quer migrar dados do SQL Server para o MySQL ou quer converter >> queries dentro de uma aplicação? >> >> >> Em 24 de novembro de 2012 17:54, Blabos de Blebe >> escreveu: >> >>> Por quê? >>> >>> >>> 2012/11/24 Sammuel Souza : >>> > Boa Tarde, >>> > >>> > tem algum comando ou programa >>> > >>> > que converta query SQL Server para mysql? >>> > >>> > Sammuel >>> > >>> > _______________________________________________ >>> > 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 >> >> >> >> >> -- >> Leonardo Ruoso >> Journalist, Perl developer and business consultant >> Media, UFC/2006; Telecom, IFCE/1998 >> >> _______________________________________________ >> 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 From daniel.oliveira.mantovani em gmail.com Sat Nov 24 16:59:36 2012 From: daniel.oliveira.mantovani em gmail.com (Daniel Mantovani) Date: Sat, 24 Nov 2012 22:59:36 -0200 Subject: [Cascavel-pm] OFF Microsoft SQL Server In-Reply-To: References: Message-ID: <1557CD00-09D9-4CA0-A6D6-680B4E95F67A@gmail.com> O SQL::Translator não traduz query's portanto não vai resolver o seu problema. Na verdade o SQL::Translator não funciona nem no que ele se proporciona a fazer, como por exemplo o sqlt não suporta todos data types do Oracle. O que eu sei que existe, mas não sei se é o sqlt que faz é transformar estrutura de dados em uma query, que também não vai resolver o seu problema. Eu te recomendo mapear as particularidades na query entre os dois bancos e escrever um pseudo-compilador. -dom -- "A Jedi uses the Force for knowledge and defense, never for attack." - Yoda IBM - Business Analytics Optimization Consultant Daniel Mantovani +5511 8538-9897 XOXO On Nov 24, 2012, at 10:32 PM, breno wrote: > Já experimentou o SQL::Translator? > > https://metacpan.org/module/sqlt > > []s > > -b > > 2012/11/24 Sammuel Souza : >> Tenho a seguinte query no SQL Server - Rodando no sistema local. >> Select COUNT(*) as Qtde FROM Dep WHERE cd_cecam = 1823 AND cd_funcionario >> = 6 AND ((cd_TpIncCalcDep IN ('S','I')) AND (( (cd_Grau IN ('A', 'F')) >> AND (GrauInstruc IN (6, 7, 8)) AND (DateDiff(yy, Nascimento, GETDATE()) <= >> 24)) OR ( (Grau IN ('A', 'F')) AND (DateDiff(yy, Nascimento, GETDATE()) >> <= 21)) OR (GrauParente IN ('E', 'P')) OR (fl_Invalidez = 'S')) OR >> (cd_TpIncCalcDep = 'G'))"; >> >> Todo banco de dados foi convertido para mysql para executar via web >> >> Seria possível uma conversão da query toda? >> >> Achei programas + são pagos. >> >> Tem algum programa free? >> >> Em 24 de novembro de 2012 15:59, Leonardo Ruoso >> escreveu: >> >>> Você quer migrar dados do SQL Server para o MySQL ou quer converter >>> queries dentro de uma aplicação? >>> >>> >>> Em 24 de novembro de 2012 17:54, Blabos de Blebe >>> escreveu: >>> >>>> Por quê? >>>> >>>> >>>> 2012/11/24 Sammuel Souza : >>>>> Boa Tarde, >>>>> >>>>> tem algum comando ou programa >>>>> >>>>> que converta query SQL Server para mysql? >>>>> >>>>> Sammuel >>>>> >>>>> _______________________________________________ >>>>> 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 >>> >>> >>> >>> >>> -- >>> Leonardo Ruoso >>> Journalist, Perl developer and business consultant >>> Media, UFC/2006; Telecom, IFCE/1998 >>> >>> _______________________________________________ >>> 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 From leonardo em ruoso.com Sun Nov 25 06:24:50 2012 From: leonardo em ruoso.com (Leonardo Ruoso) Date: Sun, 25 Nov 2012 12:24:50 -0200 Subject: [Cascavel-pm] OFF Microsoft SQL Server In-Reply-To: References: Message-ID: Em 24 de novembro de 2012 18:09, Sammuel Souza escreveu: > Tenho a seguinte query no SQL Server - Rodando no sistema local. > Select COUNT(*) as Qtde FROM Dep WHERE cd_cecam = 1823 AND > cd_funcionario = 6 AND ((cd_TpIncCalcDep IN ('S','I')) AND (( (cd_Grau > IN ('A', 'F')) AND (GrauInstruc IN (6, 7, 8)) AND (DateDiff(yy, Nascimento, > GETDATE()) <= 24)) OR ((Grau IN ('A', 'F')) AND (DateDiff(yy, Nascimento, > GETDATE()) <= 21)) OR (GrauParente IN ('E', 'P')) OR (fl_Invalidez = 'S')) > OR (cd_TpIncCalcDep = 'G'))"; > «Tenho a seguinte query» significa que é essa query que você quer alterar ou esse é só um modelo de query que você não conseguiu rodar no MySQL? Nessa query eu só vejo a diferença de sintaxe no DATEDIFF que provavelmente pode ser resolvida usando TIMESTAMPDIFF no MySQL, isso apesar de haver DATEDIFF no MySQL. Claro que pode ter alguma outra coisa que eu não vi. > Todo banco de dados foi convertido para mysql para executar via web > Eu não entendi essa afirmação. Não há diferença entre usar o MSSQL e o MySQL em uma aplicação Web ou através de um WS. Qual exatamente o requisito? > Seria possível uma conversão da query toda? > São quantas queries? 50? 100? 200? Ou você não tem como modificar as queries nos aplicativos legados ?são compilados e você não tem os fontes? Se o aplicativo utilizar um ORM ?Hybernate em Java, por exemplo? há alguma chance de você substituir o «motor» e ficar com um número mínimo de queries feitas a mão para traduzir, um trabalho que «manual» deve ser mais efetivo que automatizado. Achei programas + são pagos. > Eu nem vou explicar que o free em /free software/ não vem de grátis, mas de livre e que trocar um software já existente por um opensource não é garantia de redução de custos, principalmente no curto prazo. > Tem algum programa free? > Vamos a algumas perguntinhas básicas? - Não seria melhor manter o MSSQL para atender ao software legado e construir o novo software utilizando o MSSQL? - Há algum motivo forte para estar a substituir o MSSQL pelo MySQL? MySQL tem algumas «fraquezas» que podem «complicar» a vida de um aplicativo que «espera» um RDBMS de verdade. Substituir o MySQL, dependendo da aplicação, pode ser desastroso. A maioria dos hostings oferecem /shared hosting/ de MSSQL server, por vezes incluso no preço da hospedagem ou por um valor que não compense a substituição. - Não valeria simplesmente revisar as queries existentes no aplicativo atual e até criar a possibilidade dele rodar com ambos ou bancos dependendo da configuração? Abraços, > Em 24 de novembro de 2012 15:59, Leonardo Ruoso escreveu: > > Você quer migrar dados do SQL Server para o MySQL ou quer converter >> queries dentro de uma aplicação? >> >> >> Em 24 de novembro de 2012 17:54, Blabos de Blebe escreveu: >> >> Por quê? >>> >>> >>> 2012/11/24 Sammuel Souza : >>> > Boa Tarde, >>> > >>> > tem algum comando ou programa >>> > >>> > que converta query SQL Server para mysql? >>> > >>> > Sammuel >>> > >>> > _______________________________________________ >>> > 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 >>> >> >> >> >> -- >> Leonardo Ruoso >> Journalist, Perl developer and business consultant >> Media, UFC/2006; Telecom, IFCE/1998 >> >> _______________________________________________ >> 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 > -- Leonardo Ruoso Journalist, Perl developer and business consultant Media, UFC/2006; Telecom, IFCE/1998 -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From leonardo em ruoso.com Sun Nov 25 06:26:32 2012 From: leonardo em ruoso.com (Leonardo Ruoso) Date: Sun, 25 Nov 2012 12:26:32 -0200 Subject: [Cascavel-pm] OFF Microsoft SQL Server In-Reply-To: <1557CD00-09D9-4CA0-A6D6-680B4E95F67A@gmail.com> References: <1557CD00-09D9-4CA0-A6D6-680B4E95F67A@gmail.com> Message-ID: Em 24 de novembro de 2012 22:59, Daniel Mantovani < daniel.oliveira.mantovani em gmail.com> escreveu: > Eu te recomendo mapear as particularidades na query entre os dois bancos e > escrever um pseudo-compilador. > Eu recomendo não trocar o RDBMS se não tiver convencido do ROI :) > > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From sammuel.souza em gmail.com Sun Nov 25 06:59:46 2012 From: sammuel.souza em gmail.com (Sammuel Souza) Date: Sun, 25 Nov 2012 11:59:46 -0300 Subject: [Cascavel-pm] OFF Microsoft SQL Server In-Reply-To: References: <1557CD00-09D9-4CA0-A6D6-680B4E95F67A@gmail.com> Message-ID: Leonardo, foi convertido para MySQL somente para colocar disponivel na internet, pois servidor com SQLServer são bem + caros. No MySQl será feito somente consultas, inserir, alterar, deletar sera feito tudo via SQLServer, sincronizando somente algumas vezes para atualizar a base MySQL O programa que roda local não tenho acesso ao código fonte, pois tenho query de 30 linhas, caso tiver um programa que converta a query de SQLserver para MySQL automatico irá ajudar e muito. Em 25 de novembro de 2012 11:26, Leonardo Ruoso escreveu: > Em 24 de novembro de 2012 22:59, Daniel Mantovani < > daniel.oliveira.mantovani em gmail.com> escreveu: > >> Eu te recomendo mapear as particularidades na query entre os dois bancos >> e escrever um pseudo-compilador. >> > > Eu recomendo não trocar o RDBMS se não tiver convencido do ROI :) > > >> >> > _______________________________________________ > 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: From leonardo em ruoso.com Sun Nov 25 07:48:58 2012 From: leonardo em ruoso.com (Leonardo Ruoso) Date: Sun, 25 Nov 2012 13:48:58 -0200 Subject: [Cascavel-pm] OFF Microsoft SQL Server In-Reply-To: References: <1557CD00-09D9-4CA0-A6D6-680B4E95F67A@gmail.com> Message-ID: Em 25 de novembro de 2012 12:59, Sammuel Souza escreveu: > Leonardo, > > foi convertido para MySQL somente para colocar disponivel na internet, > pois servidor com SQLServer são bem + caros. > Locaweb e UOLHOST (que são populares) tem planos de MSSQL a partir de 30 reais por mês. Esse é um custo difícil de ser batido no curto ou médio prazo se comparado ao custo de portar a aplicação para outro banco de dados. > No MySQl será feito somente consultas, inserir, alterar, deletar sera > feito tudo via SQLServer, sincronizando somente algumas vezes para > atualizar a base MySQL > Então não é a aplicação original que vai rodar no MySQL? Já vai ter de escrever uma aplicação para rodar remoto? Então qual é o problema de reescrever as consultas com a sintaxe do MySQL? Usa a DBIx::Class? > O programa que roda local não tenho acesso ao código fonte, pois tenho > query de 30 linhas, caso tiver um programa que converta a query de > SQLserver para MySQL automatico irá ajudar e muito. > Pelo que você está dizendo o programa que roda local vai continuar usando MSSQL e você vai só copiar os dados para uma base MySQL, talvez, diariamente. Você já pensou em utilizar um RDBMS (postgresql, por exemplo) em lugar do MySQL? A compatibilidade *tende* a ser bem maior, já que o PostgreSQL ao menos se propõe a ser um banco de dados :p > Em 25 de novembro de 2012 11:26, Leonardo Ruoso escreveu: > >> Em 24 de novembro de 2012 22:59, Daniel Mantovani < >> daniel.oliveira.mantovani em gmail.com> escreveu: >> >>> Eu te recomendo mapear as particularidades na query entre os dois bancos >>> e escrever um pseudo-compilador. >>> >> >> Eu recomendo não trocar o RDBMS se não tiver convencido do ROI :) >> >> >>> >>> >> _______________________________________________ >> 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 > -- Leonardo Ruoso Journalist, Perl developer and business consultant Media, UFC/2006; Telecom, IFCE/1998 -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: