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

Responder a