Tago, Obrigado!!
Att Mauricio >From: "Tiago Athayde" <[EMAIL PROTECTED]> >Reply-To: Grupo de Usuários do PostgreSQL no >Brasil<[email protected]> >To: "Grupo de Usuários do PostgreSQL no >Brasil"<[email protected]> >Subject: Re: [PostgreSQL-Brasil] RIGHT OUTER JOIN >Date: Wed, 25 Apr 2007 09:13:49 -0300 > >Olá Mauricio, > >Realmente estava faltando um from, testa essa consulta agora e veja se te >ajuda em alguma coisa > >select tf.ds_reduzida, > Coalesce((select count(f.id_tipo_frequencia) from frequencia f > LEFT JOIN aula a ON (a.id_aula = f.id_aula) where (f.id_colaborador = >21)), 0) as total >from tipo_frequencia tf > >Em 19/04/07, Mauricio De Biasi <[EMAIL PROTECTED]> escreveu: >> >>Putz da um erro de sintaxe ? "ERROR: syntax error at or near "frequencia" >>at character 74 " teoricamente parece que esta faltando um FROM do >>select... >>mas mesmo assim da erro.. >> >> >> >From: "Tiago Athayde" <[EMAIL PROTECTED]> >> >Reply-To: Grupo de Usuários do PostgreSQL no >> >Brasil<[email protected]> >> >To: "Grupo de Usuários do PostgreSQL no >> >Brasil"<[email protected]> >> >Subject: Re: [PostgreSQL-Brasil] RIGHT OUTER JOIN >> >Date: Thu, 19 Apr 2007 14:58:37 -0300 >> > >> >Ola Mauricio, >> > >> >Testa essa consulta e veja se te ajuda em alguma coisa >> >select tf.ds_reduzida, >> > Coalesce((select count(f.id_tipo_frequencia) frequencia f ON >> >f.id_tipo_frequencia = tf.id >> > LEFT JOIN aula a ON a.id_aula = f.id_aula where (f.id_colaborador = >> >21)), >> >0) as total >> >from tipo_frequencia tf >> > >> > >> > >> >Em 19/04/07, Mauricio De Biasi <[EMAIL PROTECTED]> escreveu: >> >> >> >>Daniel se esta correto , >> >> >> >>Tenho a tabela que tem todos os tipos de frequencia que é a >> >>(tipo_frequencia), tenho a tabela frequencia que relaciona o tipo >> >>defrequencia ao usuario e tenho a tabela aula que marca a data que foi >>a >> >>aula ... e estava tentando trazer todos os tipos de frequencia mesmo >> >>zerado >> >>para cada colaborador. a totalização fiz dessa maneira com a propia >>ajuda >> >>do >> >>pessoal daqui : >> >> >> >> >>---------------------------------------------------------------------------------------------------------------------------------------- >> >>SELECT tf.id_tipo_frequencia, tf.ds_reduzida, nm_unidade, >> >>count(x.id_tipo_frequencia) as total, >> >>floor((round (count(x.id_tipo_frequencia))/ >> >> >> >>round(( >> >>SELECT count(fz.id_tipo_frequencia) FROM frequencia fz >> >>inner join aula az on fz.id_aula = az.id_aula >> >>WHERE (az.dt_aula BETWEEN timestamp '2007-01-01' AND timestamp >> >>'2007-01-31') >> >>and az.id_unidade = 11 >> >> >> >>)) * 100)) as porcent, (CASE >> >> WHEN ds_reduzida = 'P' THEN 1 >> >> WHEN ds_reduzida = 'F' THEN 2 >> >> WHEN ds_reduzida = 'SI' THEN 3 >> >> WHEN ds_reduzida = 'SE' THEN 4 >> >> WHEN ds_reduzida = 'R' THEN 5 >> >> WHEN ds_reduzida = 'FE' THEN 6 >> >> WHEN ds_reduzida = 'LMA' THEN 7 >> >> WHEN ds_reduzida = 'LME' THEN 8 >> >> ELSE 9 >> >> END) AS x >> >> >> >> >> >> >> >>FROM tipo_frequencia tf >> >>LEFT JOIN (SELECT f.id_tipo_frequencia, f.id_aula FROM frequencia f >> >> RIGHT JOIN aula a on f.id_aula = a.id_aula >> >> WHERE (a.dt_aula BETWEEN timestamp '2007-01-01' AND timestamp >> >>'2007-01-31') >> >>and a.id_unidade = 11 ) x >> >>USING (id_tipo_frequencia) >> >> >> >>left join aula au on x.id_aula = au.id_aula >> >>left join unidade u on u.id_unidade = au.id_unidade >> >> >> >> >> >>GROUP BY nm_unidade, tf.id_tipo_frequencia, tf.ds_reduzida >> >>ORDER BY x; >> >> >> >> >>---------------------------------------------------------------------------------------- >> >>Porem para cada colaborador isso não esta acontecendo , fiz o teste ja >>com >> >>Full Join e Left , Right e nada quando jogo o id do colaborador ele so >> >>traz >> >>realmente o que foi sem trazer os outros tipo de frequencia zerado para >> >>cada >> >>colaborador não obdecendo o LEFT ou RIGHT... >> >> >> >> >> >> >> >> >From: "Daniel Robert Costa" <[EMAIL PROTECTED]> >> >> >Reply-To: Grupo de Usuários do PostgreSQL no >> >> >Brasil<[email protected]> >> >> >To: Grupo de Usuários do PostgreSQL no >> >> >Brasil<[email protected]> >> >> >Subject: Re: [PostgreSQL-Brasil] RIGHT OUTER JOIN >> >> >Date: Thu, 19 Apr 2007 12:29:37 -0300 >> >> > >> >> >Olá Mauricio. >> >> > >> >> >Pelo o que eu entendi, você tem 3 tabelas: >> >> >tipo_frequencia / frequencia / aula. >> >> >Analisando o select que você mandou, parece que nem todas as >>frequencias >> >> >possuem o campo tipo_frequencia. >> >> >E analisando a tabela aula, nem todas as aulas tem a frequencia >> >>preenchida. >> >> > >> >> >Estou correto? >> >> >Se for este o caso, você pode tentar de duas formas. >> >> >Fazer assim: >> >> > >> >> >SELECT tf.ds_reduzida, COUNT(f.id_tipo_frequencia) >> >> >FROM tipo_frequencia tf >> >> >LEFT JOIN frequencia f ON f.id_tipo_frequencia = tf.id >> >> >LEFT JOIN aula a ON a.id_aula = f.id_aula >> >> >WHERE ... suas condições >> >> > >> >> >Ou então tentar algo mais amplo. >> >> >Tipo: >> >> > >> >> >SELECT tf.ds_reduzida, COUNT(f.id_tipo_frequencia) >> >> >FROM tipo_frequencia tf >> >> >FULL JOIN frequencia f ON f.id_tipo_frequencia = tf.id >> >> >FULL JOIN aula a ON a.id_aula = f.id_aula >> >> >WHERE ... suas condições >> >> > >> >> >Espero ter ajudado. >> >> > >> >> >----- Original Message ----- >> >> >From: "Mauricio De Biasi" <[EMAIL PROTECTED]> >> >> >To: <[email protected]> >> >> >Sent: Thursday, April 19, 2007 12:18 PM >> >> >Subject: Re: [PostgreSQL-Brasil] RIGHT OUTER JOIN >> >> > >> >> > >> >> >Tiago, >> >> > >> >> >Mesmo tirando essa condição não rolou ... >> >> > >> >> > >> >> > >From: "Tiago Athayde" <[EMAIL PROTECTED]> >> >> > >Reply-To: Grupo de Usuários do PostgreSQL no >> >> > >Brasil<[email protected]> >> >> > >To: "Grupo de Usuários do PostgreSQL no >> >> > >Brasil"<[email protected]> >> >> > >Subject: Re: [PostgreSQL-Brasil] RIGHT OUTER JOIN >> >> > >Date: Thu, 19 Apr 2007 08:42:11 -0300 >> >> > > >> >> > >Olá Mauricio, >> >> > > >> >> > >Quando vc colocou essa condição f.id_colaborador = 21 ele so vai >> >>trazer >> >> > >tipo >> >> > >de frenquencia de quem tem frenquencia. >> >> > > >> >> > > >> >> > >Em 18/04/07, Mauricio De Biasi <[EMAIL PROTECTED]> >>escreveu: >> >> > >> >> >> > >>Pesoal, >> >> > >> >> >> > >>estou com select relativamente simples : >> >> > >> >> >> > >> >> >> > >>select tf.ds_reduzida, count(f.id_tipo_frequencia) from >> >>tipo_frequencia >> >> >tf >> >> > >>RIGHT OUTER JOIN frequencia f USING (id_tipo_frequencia) >> >> > >>left join aula a on a.id_aula = f.id_aula >> >> > >>WHERE (a.dt_aula BETWEEN timestamp '2007-01-05' AND timestamp >> >> > >>'2007-01-05') >> >> > >> and a.id_unidade = 11 and f.id_colaborador = 21 >> >> > >>group by tf.ds_reduzida >> >> > >> >> >> > >> >> >> > >>porem não entendo pq ele so me traz o valor de mesma chave entre >>as >> >>duas >> >> > >>tabelas ? >> >> > >>ao invez de trazer todas as opções de tipo mesmo que não tenha na >> >>outra >> >> > >>tabela ? >> >> > >> >> >> > >>_________________________________________________________________ >> >> > >>Verifique já a segurança do seu PC com o Verificador de Segurança >>do >> >> > >>Windows >> >> > >>Live OneCare! http://onecare.live.com/site/pt-br/default.htm >> >> > >> >> >> > >>_______________________________________________ >> >> > >>Grupo de Usuários do PostgreSQL no Brasil >> >> > >>Antes de perguntar consulte o manual >> >> > >>http://pgdocptbr.sourceforge.net/ >> >> > >> >> >> > >>Para editar suas opções ou sair da lista acesse a página da lista >>em: >> >> > >>http://pgfoundry.org/mailman/listinfo/brasil-usuarios >> >> > >> >> >> > >> >> > >> >> > >_______________________________________________ >> >> > >Grupo de Usuários do PostgreSQL no Brasil >> >> > >Antes de perguntar consulte o manual >> >> > >http://pgdocptbr.sourceforge.net/ >> >> > > >> >> > >Para editar suas opções ou sair da lista acesse a página da lista >>em: >> >> > >http://pgfoundry.org/mailman/listinfo/brasil-usuarios >> >> > >> >> >_________________________________________________________________ >> >> >Descubra como mandar Torpedos SMS do seu Messenger para o celular dos >> >>seus >> >> >amigos. http://mobile.msn.com/ >> >> > >> >> >_______________________________________________ >> >> >Grupo de Usuários do PostgreSQL no Brasil >> >> >Antes de perguntar consulte o manual >> >> >http://pgdocptbr.sourceforge.net/ >> >> > >> >> >Para editar suas opções ou sair da lista acesse a página da lista em: >> >> >http://pgfoundry.org/mailman/listinfo/brasil-usuarios >> >> > >> >> > >> >> > >> >> >-- >> >> >No virus found in this incoming message. >> >> >Checked by AVG Free Edition. >> >> >Version: 7.5.446 / Virus Database: 269.5.4/768 - Release Date: >>19/4/2007 >> >> >05:32 >> >> > >> >> > >> >> >_______________________________________________ >> >> >Grupo de Usuários do PostgreSQL no Brasil >> >> >Antes de perguntar consulte o manual >> >> >http://pgdocptbr.sourceforge.net/ >> >> > >> >> >Para editar suas opções ou sair da lista acesse a página da lista em: >> >> >http://pgfoundry.org/mailman/listinfo/brasil-usuarios >> >> >> >>_________________________________________________________________ >> >>Inscreva-se no novo Windows Live Mail beta e seja um dos primeiros a >> >>testar >> >>as novidades-grátis. Saiba mais: >> >> >> >> >>http://www.ideas.live.com/programpage.aspx?versionId=5d21c51a-b161-4314-9b0e-4911fb2b2e6d >> >> >> >>_______________________________________________ >> >>Grupo de Usuários do PostgreSQL no Brasil >> >>Antes de perguntar consulte o manual >> >>http://pgdocptbr.sourceforge.net/ >> >> >> >>Para editar suas opções ou sair da lista acesse a página da lista em: >> >>http://pgfoundry.org/mailman/listinfo/brasil-usuarios >> >> >> >> >> >_______________________________________________ >> >Grupo de Usuários do PostgreSQL no Brasil >> >Antes de perguntar consulte o manual >> >http://pgdocptbr.sourceforge.net/ >> > >> >Para editar suas opções ou sair da lista acesse a página da lista em: >> >http://pgfoundry.org/mailman/listinfo/brasil-usuarios >> >>_________________________________________________________________ >>Descubra como mandar Torpedos SMS do seu Messenger para o celular dos seus >>amigos. http://mobile.msn.com/ >> >>_______________________________________________ >>Grupo de Usuários do PostgreSQL no Brasil >>Antes de perguntar consulte o manual >>http://pgdocptbr.sourceforge.net/ >> >>Para editar suas opções ou sair da lista acesse a página da lista em: >>http://pgfoundry.org/mailman/listinfo/brasil-usuarios >> >_______________________________________________ >Grupo de Usuários do PostgreSQL no Brasil >Antes de perguntar consulte o manual >http://pgdocptbr.sourceforge.net/ > >Para editar suas opções ou sair da lista acesse a página da lista em: >http://pgfoundry.org/mailman/listinfo/brasil-usuarios _________________________________________________________________ Seja um dos primeiros a testar o novo Windows Live Mail Beta- grátis. Acesse http://www.ideas.live.com/programpage.aspx?versionId=5d21c51a-b161-4314-9b0e-4911fb2b2e6d _______________________________________________ Grupo de Usuários do PostgreSQL no Brasil Antes de perguntar consulte o manual http://pgdocptbr.sourceforge.net/ Para editar suas opções ou sair da lista acesse a página da lista em: http://pgfoundry.org/mailman/listinfo/brasil-usuarios
