Milena Leite escreveu:
> Evandro deu certo !!!!
> Nem acredito..rsrrss
>  
> Valeu pessoal !!!
>  
> []s
>  
> Milena Leite
> 
>  
> Em 02/03/07, *Milena Leite* <[EMAIL PROTECTED] 
> <mailto:[EMAIL PROTECTED]>> escreveu:
> 
>     Ok, agora estou usando assim:
>      
> 
>     "SELECT DISTINCT
>                                          t.nm_tarefa,
>                                          p.nm_projeto,
>                                          c.nm_colaborador,
>                                          t.meta_horas,
>                                          t.id_colaborador
>                                         
>                                 FROM     tb_projeto p,
>                                          tb_tarefa t LEFT  JOIN
>                                          tb_colaborador c on
>     (c.id_colaborador = t.id_colaborador)
> 
>                                 WHERE   
>     upper(t.nm_tarefa)=upper('$nome_tarefa') and
>                                          p.id_projeto = '$id_projeto'"
> 
>      
>     mas ele me tras apenas um colaborador se eu mudo o nome da tarefa
>     ele me tras outro, mas se tenho 3 tarefas de nomes iguais embora de
>     projetos diferentes ele me retorna o mesmo nome para as tres..  
>      
<corte>
> 
>         Então Milena,
>          
>         Voce não esta relacionando a tabela 'c', portanto a
>         instrução SELECT adiciona um resultado para cada linha da tabela
>         'c'.
>          
<corte>
>              
>             Ok, deixa eu explicar direitinho..
>             Na verdade o meu select é esse:
>              
>              "SELECT DISTINCT ON
>                                                  t.nm_tarefa,
>                                                  p.nm_projeto,
>                                                  c.nm_colaborador,
>                                                  t.meta_horas,
>                                                  
>                                         FROM     tb_tarefa t,
>                                                  tb_colaborador c,
>                                                  tb_projeto p
>                                                 
>                                         WHERE   
>             upper(t.nm_tarefa)=upper('$nome_tarefa') and
>                                                  p.id_projeto =
>             '$id_projeto'");
> 
>              
>             Eu posso ter tarefas de nomes iguais, mas em projetos
>             diferentes e apenas uma pessoa pode ficar responsavel por
>             varios projetos..Então eu entendo que quando eu faço o
>             filtro de nome_tarefa e do id_projeto ele como consequencia
>             me tras o colaborador que esta ligado aquele projeto e
>             tarefa, mas ele me tras sempre o mesmo...
>              
<corte>
> 
>                 Em tão precisa ver certinho a estrutura da sua tabela.
>                 Às vezes um left join resolve tb.
>                 Pelo q entendi, vc tem join de 2 tabelas:
>                 1-     projetos (1 reg)
>                 2-     tarefas (2 reg)
> 
>                 o inner join normal vai retornar 2 registros, pois
>                 existe 2 tarefas. Neste caso o distinct não resolve mesmo
> 
>                 Usa um left join q deve resolver
> 
<corte>
> 
>                 Coloquei mas não funcionou..nunca vi isso ! tá muito
>                 estranho e olha que já tô apelando e colocando assim:
> 
>                 $id_projeto = 5;
> 
>                 select DISTINCT on id_tarefa from tb_tarefa where
>                 id_tarefa = 15 and id_projeto = '$id_projeto' and
>                 c.id_colaborador = 6
> 
<corte>>
>                 Use o distinct
> 
<corte>
> 
>                 Olá gente,
> 
>                  
> 
>                 tenho o seguinte select:
> 
>                  
> 
>                 $nome_tarefa = "tarefa 1";
> 
>                 $id_projeto = 5;
> 
>                  
> 
>                 select * from tb_tarefa where upper(nm_tarefa) =
>                 upper('$nome_tarefa') and id_projeto = '$id_projeto' and
>                 c.id_colaborador = 6
> 
>                  
> 
>                 E ele esta me trazendo duas informações, como pode !? Eu
>                 tenho apenas um projeto com esse nome, embora duas
>                 tarefas com mesmo nome e apenas um colaborador com esse
>                 id...
> 
>                  
> 
>                 Conto com voces,


Milena:

Creio que você precisa estudar um pouco mais de SQL para não ficar 
apenas no método tentativa-e-erro, que, efetivamente, não é método mais 
indicado para se desenvolver qualquer sistema.

Comece, por exemplo, com o tutorial da documentação do PostgreSQL:
http://www.postgresql.org/docs/8.2/interactive/tutorial.html
se preferir em português:
http://pgdocptbr.sourceforge.net/pg80/tutorial.html

Veja também os artigos existentes em:
http://www.postgresql.org.br/

Para se aprofundar mais indico os livros:

  PostgreSQL - Second ed. - 2006
         Douglas, Korry; Douglas, Susan
         Sams publishing

. Beginning Databases with PostgreSQL - Second ed. - 2005
         Stones, Richard; Mathew, Neil
         Worx Press

Sobre banco de dados em geral veja:

. INTRODUÇAO A SISTEMAS DE BANCOS DE DADOS - 2004
         DATE, CHRISTOPHER J
         CAMPUS

. SISTEMAS DE BANCO DE DADOS - 2005
         NAVATHE, SHAMKANT B; ELMASRI, RAMEZ E.
         ADDISON WESLEY BRA

. SISTEMA DE BANCO DE DADOS - 2006
         KORTH, HENRY F.; SILBERSCHATZ, ABRAHAM; SUDARSHAN, S.
         CAMPUS

[]s
Osvaldo

                
_______________________________________________________ 
Yahoo! Mail - Sempre a melhor opção para você! 
Experimente já e veja as novidades. 
http://br.yahoo.com/mailbeta/tudonovo/
 

_______________________________________________
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