Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Consulta com 3 tabelas...


Betosum

Question

Bom dia Pessoal,

Estou com problemas que não estou conseguindo solucionar....

Tenho 3 tabelas

CadMembros

CadVisitantes

Emprestimos

Acontece que estou fazendo uma consulta onde retorne os emprestimos em atraso. Até ai tudo bem....mas eu gostaria que os campos NomeMembro e NomeVisitante saissem no mesmo campo. ao invés disso está saindo em campos distintos...segue abaixo a minha consulta em SQL.

SELECT Emprestimos.DtEmail,

Emprestimos.QtdeEmail,

Emprestimos.Visitante,

Emprestimos.CodEmprestimo,

Emprestimos.DATA,

Emprestimos.CodMembro,

Emprestimos.Bibliotecario,

Emprestimos.DataDevolver,

Livro.LocalArmaz,Livro.Tipo,

UPPER(Livro.Titulo) Titulo,

CadVisitante.EmailVisitante,

UPPER(CadVisitante.NomeVisitante) NomeVisitante,

CadAlunosEbd.Email,

UPPER(CadAlunosEbd.Nome) Nome

FROM Emprestimos LEFT OUTER JOIN CadAlunosEbd ON Emprestimos.CodMembro = CadAlunosEbd.Cad

LEFT OUTER JOIN CadVisitante ON Emprestimos.CodMembro = CadVisitante.CodVisitante

INNER JOIN Livro ON Livro.LocalArmaz = Emprestimos.CodAcervo

WHERE Emprestimos.DataDevolucao IS NULL

Se alguém puder ajudar eu agradeço....

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0
Bom dia Beto,

Para agrupar os campos, poderá utilizar o +. Ex.:

NomeMembro + ' ' + NomeVisitante

OBS.:

O + quando é caracter é concatenado, mas quando é inteiro é somado.

Fulvio boa noite....

Agradeço a resposta mas acho que não me espressei bem na pergunta.

O que ocorre é que Na Tabela de empréstimos tem o campo CodMembro que grava os 2 códigos, Cad(CodMembro) e CodVisitante. quando executo a Sql citada acima é retornado o nome do Membro e o NomeVisitante em campos distintos. Por exemplo:

CodMembro NomeMembro NomeVisitante

499_________JESUS________ -_____________

10001______-_____________ - Filho de Deus

100________- Lucas________ -______________

O que Gostaria listasse é:

CodMembro Nome

499_______ - Jesus

10001_____ - Filho de Deus

100_______ - Lucas

Todos em um único campo....

Obrigado pela atenção, abraço...

Beto

Edited by Betosum
Link to comment
Share on other sites

  • 0

Bom dia Beto,

Ok, entendi o q deseja.

Neste caso, você poderá utilizar o CASE para testar os campos. Fiz um exemplo com o que passou:

CREATE TABLE #tabela (CodMembro INT, NomeMembro VARCHAR(50), NomeVisitante VARCHAR(50))

INSERT INTO #tabela VALUES (499, 'JESUS', null)
INSERT INTO #tabela VALUES (10001, NULL, 'Filho de Deus')
INSERT INTO #tabela VALUES (100, 'Lucas', null)


SELECT CodMembro, 
CASE WHEN NomeMembro IS NOT NULL THEN  NomeMembro
WHEN NomeVisitante IS NOT NULL THEN  NomeVisitante end Nome
 FROM #tabela t

Link to comment
Share on other sites

  • 0

RESOLVIDO...

Boa Noite,

Obrigado Fulvio, problema resolvido....

Deus te abençoe....

Forte abraço.

Beto

:)

Bom dia Beto,

Ok, entendi o q deseja.

Neste caso, você poderá utilizar o CASE para testar os campos. Fiz um exemplo com o que passou:

CREATE TABLE #tabela (CodMembro INT, NomeMembro VARCHAR(50), NomeVisitante VARCHAR(50))

INSERT INTO #tabela VALUES (499, 'JESUS', null)
INSERT INTO #tabela VALUES (10001, NULL, 'Filho de Deus')
INSERT INTO #tabela VALUES (100, 'Lucas', null)


SELECT CodMembro, 
CASE WHEN NomeMembro IS NOT NULL THEN  NomeMembro
WHEN NomeVisitante IS NOT NULL THEN  NomeVisitante end Nome
 FROM #tabela t

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...