none
comando sql dando errado RRS feed

  • Pergunta

  • tenho esse comando

    SELECT DISTINCT USUARIO.NOME_USUARIO, ATENDIMENTO_CHAT_INTERNO.status FROM USUARIO INNER JOIN ATENDIMENTO_CHAT_INTERNO ON USUARIO.ID_USUARIO = ATENDIMENTO_CHAT_INTERNO.id_usuario OR USUARIO.ID_USUARIO = ATENDIMENTO_CHAT_INTERNO.id_usuario2 WHERE (ATENDIMENTO_CHAT_INTERNO.id_usuario = '" + txtidusuario.Text + "') OR (ATENDIMENTO_CHAT_INTERNO.id_usuario2 = '" + txtidusuario.Text + "') GROUP BY USUARIO.NOME_USUARIO, ATENDIMENTO_CHAT_INTERNO.status

    quero que ele selecione o nome dos usuarios diferente do nome logado

    utilizar Nome_usuario != 'JOSE' e também Nome_usuario <> 'JOSE'  mais nenhuma das opções deu certo, meu comando esta incorreto ?

    OBS: do jeito que esta ele busca corretamente mais busca também o nome do usuário logado


    Atenciosamente,
    José Henrique Sabino

    quinta-feira, 11 de setembro de 2014 16:59

Todas as Respostas

  • Boa tarde,

    Experimente dessa forma:

    SELECT DISTINCT USUARIO.NOME_USUARIO, ATENDIMENTO_CHAT_INTERNO.status 
    FROM USUARIO 
    INNER JOIN ATENDIMENTO_CHAT_INTERNO 
        ON 
            USUARIO.ID_USUARIO = ATENDIMENTO_CHAT_INTERNO.id_usuario OR 
            USUARIO.ID_USUARIO = ATENDIMENTO_CHAT_INTERNO.id_usuario2 
    WHERE 
        USUARIO.ID_USUARIO = '" + txtidusuario.Text + "' AND
        USUARIO.Nome_usuario <> 'JOSE'

    Espero que ajude.


    Assinatura: http://www.imoveisemexposicao.com.br

    quinta-feira, 11 de setembro de 2014 17:16
  • ATENDIMENTO_CHAT_INTERNO.id_usuario2 = '" + txtidusuario.Text + "')
    ele tem que buscar também o id_usuario e id_usuario2

    Atenciosamente,
    José Henrique Sabino

    quinta-feira, 11 de setembro de 2014 17:35
  • José,

    Veja se resolve...

    SELECT DISTINCT USUARIO.NOME_USUARIO, ATENDIMENTO_CHAT_INTERNO.status 
    FROM USUARIO 
    INNER JOIN ATENDIMENTO_CHAT_INTERNO ON USUARIO.ID_USUARIO = ATENDIMENTO_CHAT_INTERNO.id_usuario
    WHERE (ATENDIMENTO_CHAT_INTERNO.id_usuario = '" + txtidusuario.Text + "') 
    union
    SELECT DISTINCT USUARIO.NOME_USUARIO, ATENDIMENTO_CHAT_INTERNO.status 
    FROM USUARIO 
    INNER JOIN ATENDIMENTO_CHAT_INTERNO ON USUARIO.ID_USUARIO = ATENDIMENTO_CHAT_INTERNO.id_usuario2 
    WHERE (ATENDIMENTO_CHAT_INTERNO.id_usuario2 = '" + txtidusuario.Text + "') 
    GROUP BY USUARIO.NOME_USUARIO, ATENDIMENTO_CHAT_INTERNO.status


    Tulio Rosa | http://tuliorosa.com.br | Se resolveu seu problema, marque como resposta ou vote

    quinta-feira, 11 de setembro de 2014 17:51
  • José, acredito que a condição abaixo é suficiente:

        USUARIO.ID_USUARIO = '" + txtidusuario.Text + "' AND

    se forem consideradas as colunas utilizadas no Inner Join:

            USUARIO.ID_USUARIO = ATENDIMENTO_CHAT_INTERNO.id_usuario OR 
            USUARIO.ID_USUARIO = ATENDIMENTO_CHAT_INTERNO.id_usuario2 

    Por exemplo, supondo que USUARIO.ID_USUARIO seja igual a 123 (valor de txtidusuario.Text), então a coluna  id_usuario ou id_usuario2 de atendimento_chat_interno também é igual a 123, senão o Inner Join não seria feito.

    Espero que ajude.


    Assinatura: http://www.imoveisemexposicao.com.br

    quinta-feira, 11 de setembro de 2014 18:03
  • José,

    Este dados estão sendo passados através de uma aplicação desenvolvido em Delphi?

    Se for, gostaria de saber como este Select esta sendo tratado dentro do Delphi?

    Acredito que a maneira que o Gapimex esta sugerindo para você é a solução, pois você já esta filtando os dados na junção de acordo com as colunas.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | SoroCódigos] @JuniorGalvaoMVP | pedrogalvaojunior.wordpress.com

    sexta-feira, 12 de setembro de 2014 21:40