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

Responder a