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
