[firebase-br] RES: RES: RES: RES: RES: Consulta SQL

Carlos Phelippe carlos.phelippe em digilab.com.br
Seg Mar 30 10:22:22 -03 2015


Usando DISTINCT funcionou blz.

Muito obrigado.

________________________________________
De: lista [lista-bounces em firebase.com.br] em nome de Alexandre [camilo em apollosistemas.com.br]
Enviado: segunda-feira, 30 de março de 2015 9:35
Para: FireBase
Assunto: Re: [firebase-br] RES:  RES:  RES:  RES:  Consulta SQL

Tenta assim

Select DISTINCT n.id_negocio, n.id_pessoa, n.titulo, n.id_usuario, n.valor_negocio, n.data_iniciar, n.data_terminar, n.etapas, n.Visibilidade, n.resultado
from negocios n
INNER join pessoas p on p.id_pessoa = n.id_pessoa
left join telefones t on p.id_Pessoa = t.id_Pessoa
left join tipos_telefone tt on t.id_tipo_Telefone = tt.id_Tipo_Telefone
left join operadoras o on t.id_Operadora = o.id_Operadora
left join hp_midias_sociais hpm on p.id_Pessoa = hpm.id_Pessoa
left join hp_tipos_midia_social hpmt on hpmt.id_tipo_midia_social = hpm.id_tipo_midia_social
left join status s on p.id_Status = s.id_Status
left join documentos doc on p.id_pessoa = doc.id_pessoa
left join grupos g on p.id_grupo = g.id_grupo
order by n.id_negocio

Alexandre Camilo
+55 27 3233-4143

On 30/03/2015 09:01, Carlos Phelippe wrote:
> Tentei assim:
>
>      SQL.Add('Select n.titulo, n.id_negocio, n.id_pessoa, n.id_usuario, n.valor_negocio, n.data_iniciar, n.data_terminar, n.etapas, n.Visibilidade, n.resultado '+
>              'from negocios n, pessoas p '+
>              'where '+
>              'n.id_Pessoa = p.id_Pessoa and p.id_Pessoa in (select distinct(p.id_Pessoa) from pessoas p '+
>              'left join telefones t on p.id_Pessoa = t.id_Pessoa '+
>              'left join tipos_telefone tt on t.id_tipo_Telefone = tt.id_Tipo_Telefone '+
>              'left join operadoras o on t.id_Operadora = o.id_Operadora '+
>              'left join hp_midias_sociais hpm on p.id_Pessoa = hpm.id_Pessoa '+
>              'left join hp_tipos_midia_social hpmt on hpmt.id_tipo_midia_social = hpm.id_tipo_midia_social '+
>              'left join status s on p.id_Status = s.id_Status '+
>              'left join documentos doc on p.id_pessoa = doc.id_pessoa '+
>              'left join grupos g on p.id_grupo = g.id_grupo '+
>              'where  '+
>              '((hpm.url containing :URL) or (t.numero like :NUMERO) or (doc.valor containing :DOCUMENTO) or (p.nome containing :NOME) or (p.observacao containing :NOME))) '+
>              'and ((n.observacao containing :Valor) or (n.valor_negocio containing :Valor) or (n.titulo containing :NOME)) '+
>              'order by data_iniciar, data_terminar, valor_negocio, p.nome');
>
>
> Mas ainda sem sucesso...
>
>
>
> ________________________________________
> De: lista [lista-bounces em firebase.com.br] em nome de Alexandre [camilo em apollosistemas.com.br]
> Enviado: segunda-feira, 30 de março de 2015 8:56
> Para: FireBase
> Assunto: Re: [firebase-br] RES:  RES:  RES:  Consulta SQL
>
> Mas sempre serão retornados apenas estes campos? caso a resposta seja
> sim, basta adicionar DISTINCT depois do select no primeiro SQL que vc
> enviou.
>
>
> Alexandre Camilo
> +55 27 3233-4143
>
> On 30/03/2015 08:24, Carlos Phelippe wrote:
>> Por causa do pesquisa.
>>
>> Pretendo retornar negócios por parte do telefone, ou por parte do e-mail entende?
>>
>> ________________________________________
>> De: lista [lista-bounces em firebase.com.br] em nome de Alexandre [camilo em apollosistemas.com.br]
>> Enviado: segunda-feira, 30 de março de 2015 8:13
>> Para: FireBase
>> Assunto: Re: [firebase-br] RES:  RES:  Consulta SQL
>>
>> Bom dia Carlos,  uma pergunta a respeito do select.  Por que incluir
>> este monte de tabelas no from, sendo que voce so esta mostrando
>> resultados da tabela negocios ?
>>
>> Alexandre Camilo
>> +55 27 3233-4143
>>
>> On 29/03/2015 20:32, Carlos Phelippe wrote:
>>> Cheguei a isso:
>>>
>>> Select n.id_negocio, n.id_pessoa, n.titulo, n.id_usuario, n.valor_negocio, n.data_iniciar, n.data_terminar, n.etapas, n.Visibilidade, n.resultado
>>> from negocios n, pessoas p
>>> where
>>> n.id_Pessoa = p.id_pessoa and p.id_pessoa in (Select distinct(p.id_pessoa)
>>> from pessoas p
>>> left join telefones t on p.id_Pessoa = t.id_Pessoa
>>> left join tipos_telefone tt on t.id_tipo_Telefone = tt.id_Tipo_Telefone
>>> left join operadoras o on t.id_Operadora = o.id_Operadora
>>> left join hp_midias_sociais hpm on p.id_Pessoa = hpm.id_Pessoa
>>> left join hp_tipos_midia_social hpmt on hpmt.id_tipo_midia_social = hpm.id_tipo_midia_social
>>> left join status s on p.id_Status = s.id_Status
>>> left join documentos doc on p.id_pessoa = doc.id_pessoa
>>> left join grupos g on p.id_grupo = g.id_grupo
>>> left join historicos h on p.id_pessoa = h.id_Pessoa)
>>>
>>> O que acham?
>>>
>>>
>>> ________________________________________
>>> De: lista [lista-bounces em firebase.com.br] em nome de Carlos Phelippe [carlos.phelippe em digilab.com.br]
>>> Enviado: domingo, 29 de março de 2015 20:02
>>> Para: FireBase
>>> Assunto: [firebase-br] RES:  Consulta SQL
>>>
>>> Dá isso:
>>> Invalid expression in the @1 (not contained in either an aggregate function or the GROUP BY clause)
>>>
>>> ________________________________________
>>> De: lista [lista-bounces em firebase.com.br] em nome de Flavio Pereira [flavio em c2sistemas.com.br]
>>> Enviado: domingo, 29 de março de 2015 19:59
>>> Para: FireBase
>>> Assunto: Re: [firebase-br] Consulta SQL
>>>
>>> Rapaz acho que se você der um group by no id do cliente resolve.
>>> Em 29/03/2015 19:40, "Carlos Phelippe" <carlos.phelippe em digilab.com.br>
>>> escreveu:
>>>
>>>> Olá pessoa!
>>>>
>>>> Estou tentando a consulta abaixo:
>>>>
>>>> Select n.id_negocio, n.id_pessoa, n.titulo, n.id_usuario, n.valor_negocio,
>>>> n.data_iniciar, n.data_terminar, n.etapas, n.Visibilidade, n.resultado
>>>> from negocios n
>>>> left join pessoas p on p.id_pessoa = n.id_pessoa
>>>> left join telefones t on p.id_Pessoa = t.id_Pessoa
>>>> left join tipos_telefone tt on t.id_tipo_Telefone = tt.id_Tipo_Telefone
>>>> left join operadoras o on t.id_Operadora = o.id_Operadora
>>>> left join hp_midias_sociais hpm on p.id_Pessoa = hpm.id_Pessoa
>>>> left join hp_tipos_midia_social hpmt on hpmt.id_tipo_midia_social =
>>>> hpm.id_tipo_midia_social
>>>> left join status s on p.id_Status = s.id_Status
>>>> left join documentos doc on p.id_pessoa = doc.id_pessoa
>>>> left join grupos g on p.id_grupo = g.id_grupo
>>>> order by n.id_negocio
>>>>
>>>> Ocorre que quando a pessoa tem, por exemplo, 2 telefones ou 2 e-mails  ou
>>>> 2 ou mais registros nas tabelas relacionadas com o left join tenho
>>>> registros repetidos. Como solucionar isso?
>>>>
>>>> Uma pessoa pode ter n negócios relacionados a ela mas, por exemplo, ter 0
>>>> ou mais telefones e assim por diante.
>>>> [
>>>> http://www.digilab.com.br/wp-content/themes/Digilab/images/logo_digilab.jpg]
>>>>     Carlos Phelippe
>>>> Analista de Sistemas
>>>> +55 48 3091-4700 Ramal 107
>>>> digilab.com.br<http://www.digilab.com.br>
>>>>
>>>> ______________________________________________
>>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>>>> http://www.firebase.com.br/fb/artigo.php?id=1107
>>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>>
>>> ______________________________________________
>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>
>>> ______________________________________________
>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>
>>> ______________________________________________
>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa




Mais detalhes sobre a lista de discussão lista