Usuário com melhor resposta
Ajuda SQL

Pergunta
-
Amigos,
tenho um db SQL SERVER 2000, e as seguintes tabelas:
CADCLIE, com os campos: CD_CLIE,NM_CLIE, EMAILRCLIE, onde CD_CLIE é chave.
AGENDA, com os seguintes campos: CD_AGENDA, CD_CLIE, CD_PROF...
Preciso criar uma 3º tabela, com os seguintes dados:
CD_PROF, CD_CLIE,NM_CLIE, EMAILRCLIE
O comando SQL deve filtrar da tabela AGENDA todos os pacientes(CD_CLIE) que consultaram com o medico(CD_PROF) Eliesio por exemplo, e buscar na tabela CLIENTE apenas o e-mail(EMAILRCLIE) deste Paciente.Como seria esse comando? e como salvar essa nova tabela TEMPORARIA?
obrigado,
Eliesio A. Gomesquinta-feira, 29 de dezembro de 2011 13:24
Respostas
-
Eliseo, bom dia,
Vc pode fazer da seguinte forma:
select B.CD_PROF, A.CD_CLIE,A.NM_CLIE, A.EMAILRCLIE
INTO TB_NOVA_TABELA
from CADCLIE as A
inner join
AGENDA as B
on A.CD_CLIE = A.CD_CLIE
WHERE B.CD_PROF = 'Eliesio'Espero ter ajudado.
Abs.
Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp- Marcado como Resposta Heloisa Pires sexta-feira, 30 de março de 2012 19:38
quinta-feira, 29 de dezembro de 2011 13:30 -
Use distinct.
- Sugerido como Resposta Eduardo Gomes Pereira segunda-feira, 2 de janeiro de 2012 19:13
- Marcado como Resposta Heloisa Pires sexta-feira, 30 de março de 2012 19:38
segunda-feira, 2 de janeiro de 2012 18:59
Todas as Respostas
-
Eliseo, bom dia,
Vc pode fazer da seguinte forma:
select B.CD_PROF, A.CD_CLIE,A.NM_CLIE, A.EMAILRCLIE
INTO TB_NOVA_TABELA
from CADCLIE as A
inner join
AGENDA as B
on A.CD_CLIE = A.CD_CLIE
WHERE B.CD_PROF = 'Eliesio'Espero ter ajudado.
Abs.
Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp- Marcado como Resposta Heloisa Pires sexta-feira, 30 de março de 2012 19:38
quinta-feira, 29 de dezembro de 2011 13:30 -
Eliseo
o Script do Eduardo deve te ajudar, mas vc precisa relamente criar uma tabela para esses valores?
Pq vc não cria uma VIEW?
create view UVW_ConsultaMedico as ( select B.CD_PROF, A.CD_CLIE,A.NM_CLIE, A.EMAILRCLIE from CADCLIE as A inner join AGENDA as B on A.CD_CLIE = A.CD_CLIE ) go --ai faz a consulta na view select * from UVW_ConsultaMedico WHERE CD_PROF = 'Eliesio'
Att.
Marcelo Fernandes
MCP, MCDBA, MCSA, MCTS.
Se útil, classifique!!!
Me siga no twitter: @marcelodba- Sugerido como Resposta Rodrigo Ataíde segunda-feira, 2 de janeiro de 2012 19:10
quinta-feira, 29 de dezembro de 2011 13:49Moderador -
Prezado Eduardo, boa tarde
abri o sql query analizer e coloquei seu procedimento, mandei executar, demorou um pouco e o resultado foi que encontrou mais de 11mil linhas.
Porem nao criou a tabela TB_NOVA_TABELAfiz algo errado?
Eliesio A. Gomesquinta-feira, 29 de dezembro de 2011 16:46 -
Marcelo, boa tarde
tambem excutei os procedimentos que enviou.
Primeiramente abri o sql query analizer e executei o 1º passo para criar a view.
Depois colei o 2º passo e excetei, demorou um tempo e apos me trouxe apenas umas 10 linhas, mas com os dados que pedi.Foi mostrado 10 linhas com nomes repetidos (acho que devido o mesmo paciente ter mais de uma consulta) mas tudo bem, porem precisava que fosse apresentado todos.
Como faço para salvar posteriormente essa tabela?
Obrigado
Eliesio A. Gomesquinta-feira, 29 de dezembro de 2011 16:50 -
Elisesio, estranho a cláusula INTO deve inserir os dados selecionados na nova tabela. Veja se o into está concatenado com o nome do campo. Veja se cláusula está destacado em azul.
Se não der certo crie uma tabela com os mesmos nomes, tipos e tamanhos dos campos de origens e faça um insert.
insert into TB_NOVA_TABELA
select B.CD_PROF, A.CD_CLIE,A.NM_CLIE, A.EMAILRCLIE
from CADCLIE as A
inner join
AGENDA as B
on A.CD_CLIE = A.CD_CLIE
WHERE B.CD_PROF = 'Eliesio'Abs.
Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_spquinta-feira, 29 de dezembro de 2011 16:52 -
Eduardo, bom dia
realmente criou a tabela TB_NOVA_TABELA no db, porem o que constatei é que ele criou diversas vezes o mesmo registro, tipo o paciente consultou mais de 1 vez ele carrega na tabela mais de uma linha com os dados do cliente.
Pelo que vi ao exportar a tabela para um excel, foram encontrados mais de 12mil registros, porem ao importar para o programa de e-mail foram adicionados apenas 5 endereços de e-mail, isso prova que ele repetiu quase todos os dados.
alguma dica?
Eliesio A. Gomessegunda-feira, 2 de janeiro de 2012 15:38 -
Eliesio
Poderia postar as estruras das tabelas e alguns registros de exemplo?
vc precisa mesmo de uma tabela nova? uma view nao lhe atende? pois vc terá que ficar "dropando" e recriando a tabela toda vez que quiser os dados atualzado, na view isto não é necessário
Att.
Marcelo Fernandes
MCP, MCDBA, MCSA, MCTS.
Se útil, classifique!!!
Me siga no twitter: @marcelodbasegunda-feira, 2 de janeiro de 2012 15:44Moderador -
Use distinct.
- Sugerido como Resposta Eduardo Gomes Pereira segunda-feira, 2 de janeiro de 2012 19:13
- Marcado como Resposta Heloisa Pires sexta-feira, 30 de março de 2012 19:38
segunda-feira, 2 de janeiro de 2012 18:59