Usuário com melhor resposta
Juntar duas querys ou inserir dados de uma em outra.

Pergunta
-
Como faço para juntar estas duas querys
select
ass.nome, tu.turma, ar.email
from
epp_01_2013..alunoss ass, epp_01_2013..turmalu tu, epp_gen..alunoger ar
where
ass.matricula = ass.matricula and
tu.matricula = ass.matricula and
ass.matricula = ar.matricula and
(ar.email <> '') and
(ar.email <> ' ') and
(tu.serie = 8)
order by
tu.turma, ass.nome
Juntar com
SELECT g.email as 'E-mail do Aluno',
rsp.nome as 'Nome do Resp',
rsp.telefone as 'Telefone Resp',
rsp.rps_tel_celular as 'Celular'
FROM respalu rs
inner join respons rsp on(rsp.cod_resp = rs.cod_resp)
inner join EPP_01_2011..alunoss a on(a.matricula = rs.matricula)
inner join alunoger g on(a.matricula = g.matricula)
where rsa_tipo = 'A' and rsp.email is null and g.email <> ''
order by 1
Ou apenas Inserir rsp.nome as 'Nome do Resp' e rsp.rps_tel_celular as 'Celular' no primeiro select
Respostas
-
Boa tarde,
Experimente dessa forma:
select ass.nome, tu.turma, ar.email, rsp.nome as 'Nome do Pai', rsp.telefone as 'Telefone Pai', rsp.rps_tel_celular as 'Celular Pai', rsm.nome as 'Nome da Mãe', rsm.telefone as 'Telefone Mãe', rsm.rps_tel_celular as 'Celular Mãe', rsa.nome as 'Nome do Resp AcadPai', rsa.telefone as 'Telefone Resp Acad', rsa.rps_tel_celular as 'Celular Resp Acad', rsf.nome as 'Nome do Resp Financ', rsf.telefone as 'Telefone Resp Financ', rsf.rps_tel_celular as 'Celular Resp Financ' from epp_01_2013..alunoss ass inner join epp_01_2013..turmalu tu on tu.matricula = ass.matricula inner join epp_gen..alunoger ar on ar.matricula = ass.matricula inner join respalu rs on rs.matricula = ass.matricula left join respons rsp on rsp.cod_resp = rs.cod_resp and rsp.rsa_tipo = 'P' left join respons rsm on rsm.cod_resp = rs.cod_resp and rsm.rsa_tipo = 'M' left join respons rsa on rsa.cod_resp = rs.cod_resp and rsa.rsa_tipo = 'A' left join respons rsf on rsf.cod_resp = rs.cod_resp and rsf.rsa_tipo = 'F' where (ar.email <> '') and (tu.serie = 8) order by tu.turma, ass.nome
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta fpsilva terça-feira, 7 de maio de 2013 13:23
-
-
José_Diz, da minha parte você pode ficar totalmente a vontade para utilizar minhas sugestões, seja total ou parcialmente, para elaborar outras sugestões para as questões do fórum.
fpsilva, segue a atualização da sugestão anterior considerando que a coluna rsa_tipo pertence a tabela respalu:
select ass.nome, tu.turma, ar.email, rsp_p.nome as 'Nome do Pai', rsp_p.telefone as 'Telefone Pai', rsp_p.rps_tel_celular as 'Celular Pai', rsp_m.nome as 'Nome da Mãe', rsp_m.telefone as 'Telefone Mãe', rsp_m.rps_tel_celular as 'Celular Mãe', rsp_a.nome as 'Nome do Resp Acad', rsp_a.telefone as 'Telefone Resp Acad', rsp_a.rps_tel_celular as 'Celular Resp Acad', rsp_f.nome as 'Nome do Resp Financ', rsp_f.telefone as 'Telefone Resp Financ', rsp_f.rps_tel_celular as 'Celular Resp Financ' from epp_01_2013..alunoss ass inner join epp_01_2013..turmalu tu on tu.matricula = ass.matricula inner join epp_gen..alunoger ar on ar.matricula = ass.matricula left join respalu rs_p on rs_p.matricula = ass.matricula and rs_p.rsa_tipo = 'P' left join respons rsp_p on rsp_p.cod_resp = rs_p.cod_resp left join respalu rs_m on rs_m.matricula = ass.matricula and rs_m.rsa_tipo = 'M' left join respons rsp_m on rsp_m.cod_resp = rs_m.cod_resp left join respalu rs_a on rs_a.matricula = ass.matricula and rs_a.rsa_tipo = 'A' left join respons rsp_a on rsp_a.cod_resp = rs_a.cod_resp left join respalu rs_f on rs_f.matricula = ass.matricula and rs_f.rsa_tipo = 'F' left join respons rsp_f on rsp_f.cod_resp = rs_f.cod_resp where tu.turma = 'TF-EI1A-M' order by ass.nome
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta fpsilva terça-feira, 7 de maio de 2013 13:22
-
gapimex,
Perfeito era o que eu precisava...
Gerando os relatórios aqui percebi que nem todas as turmas estão saindo e tem alguma forma de colocar os responsaveis na mesma linha eles estão vindo em coluna, tenho este outro código aqui que mostra todas as turmas.
select
re.nome, tu.turma as Turma, re.email
from
epp_gen..respons re, epp_01_2013..alunoss ass, epp_01_2013..turmalu tu
where
(re.cod_resp = ass.cod_resp) and
(tu.matricula = ass.matricula) and
(re.email <> '') and
(re.email <> ' ') and
(tu.serie = 3)
order by
tu.turma, re.nome
e se não tiver como colocar todos os responsáveis na mesma linha como posso inserir esta linha para selecionar o tipo de responsável.
where rsa_tipo = 'A' and rsp.email is null and g.email <> ''
order by 1pois preciso identificar o tipo de responsável.
o rsa_tipo= 'A' é responsável acadêmico o 'F' responsável financeiro 'P' pai e 'M' é a mãe.
-
O e-mail está na tabela Respons?
Se estiver experimente mais ou menos dessa forma:
select ass.nome, tu.turma, ar.email, rsp_p.nome as 'Nome do Pai', rsp_p.telefone as 'Telefone Pai', rsp_p.rps_tel_celular as 'Celular Pai', rsp_p.email as 'E-mail Pai', rsp_m.nome as 'Nome da Mãe', rsp_m.telefone as 'Telefone Mãe', rsp_m.rps_tel_celular as 'Celular Mãe', rsp_m.email as 'E-mail Mãe', -- ...
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta fpsilva terça-feira, 11 de fevereiro de 2014 16:53
Todas as Respostas
-
Bom dia,
Experimente mais ou menos dessa forma:
select ass.nome, tu.turma, ar.email, rsp.nome as 'Nome do Resp', rsp.telefone as 'Telefone Resp', rsp.rps_tel_celular as 'Celular' from epp_01_2013..alunoss ass inner join epp_01_2013..turmalu tu on tu.matricula = ass.matricula inner join epp_gen..alunoger ar on ar.matricula = ass.matricula inner join respalu rs on rs.matricula = ass.matricula inner join respons rsp on rsp.cod_resp = rs.cod_resp where (ar.email <> '') and (tu.serie = 8) order by tu.turma, ass.nome
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
-
gapimex,
Perfeito era o que eu precisava...
Gerando os relatórios aqui percebi que nem todas as turmas estão saindo e tem alguma forma de colocar os responsaveis na mesma linha eles estão vindo em coluna, tenho este outro código aqui que mostra todas as turmas.
select
re.nome, tu.turma as Turma, re.email
from
epp_gen..respons re, epp_01_2013..alunoss ass, epp_01_2013..turmalu tu
where
(re.cod_resp = ass.cod_resp) and
(tu.matricula = ass.matricula) and
(re.email <> '') and
(re.email <> ' ') and
(tu.serie = 3)
order by
tu.turma, re.nome
e se não tiver como colocar todos os responsáveis na mesma linha como posso inserir esta linha para selecionar o tipo de responsável.
where rsa_tipo = 'A' and rsp.email is null and g.email <> ''
order by 1pois preciso identificar o tipo de responsável.
o rsa_tipo= 'A' é responsável acadêmico o 'F' responsável financeiro 'P' pai e 'M' é a mãe.
-
Gerando os relatórios aqui percebi que nem todas as turmas estão saindo e tem alguma forma de colocar os responsaveis na mesma linha eles estão vindo em coluna, tenho este outro código aqui que mostra todas as turmas.
select
re.nome, tu.turma as Turma, re.email
from
epp_gen..respons re, epp_01_2013..alunoss ass, epp_01_2013..turmalu tu
where
(re.cod_resp = ass.cod_resp) and
(tu.matricula = ass.matricula) and
(re.email <> '') and
(re.email <> ' ') and
(tu.serie = 3)
order by
tu.turma, re.nomee se não tiver como colocar todos os responsáveis na mesma linha como posso inserir esta linha para selecionar o tipo de responsável.
where rsa_tipo = 'A' and rsp.email is null and g.email <> ''
order by 1pois preciso identificar o tipo de responsável.
o rsa_tipo= 'A' é responsável acadêmico o 'F' responsável financeiro 'P' pai e 'M' é a mãe.
-
Boa tarde,
Experimente dessa forma:
select ass.nome, tu.turma, ar.email, rsp.nome as 'Nome do Pai', rsp.telefone as 'Telefone Pai', rsp.rps_tel_celular as 'Celular Pai', rsm.nome as 'Nome da Mãe', rsm.telefone as 'Telefone Mãe', rsm.rps_tel_celular as 'Celular Mãe', rsa.nome as 'Nome do Resp AcadPai', rsa.telefone as 'Telefone Resp Acad', rsa.rps_tel_celular as 'Celular Resp Acad', rsf.nome as 'Nome do Resp Financ', rsf.telefone as 'Telefone Resp Financ', rsf.rps_tel_celular as 'Celular Resp Financ' from epp_01_2013..alunoss ass inner join epp_01_2013..turmalu tu on tu.matricula = ass.matricula inner join epp_gen..alunoger ar on ar.matricula = ass.matricula inner join respalu rs on rs.matricula = ass.matricula left join respons rsp on rsp.cod_resp = rs.cod_resp and rsp.rsa_tipo = 'P' left join respons rsm on rsm.cod_resp = rs.cod_resp and rsm.rsa_tipo = 'M' left join respons rsa on rsa.cod_resp = rs.cod_resp and rsa.rsa_tipo = 'A' left join respons rsf on rsf.cod_resp = rs.cod_resp and rsf.rsa_tipo = 'F' where (ar.email <> '') and (tu.serie = 8) order by tu.turma, ass.nome
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta fpsilva terça-feira, 7 de maio de 2013 13:23
-
Valeu gapimex pela prestividade
neste caso não precisaria de todos os responsáveis de uma vez, mas testei o código aqui e deu o seguinte erro
Invalid column name 'rsa_tipo'
no código abaixo mostra o responsável de acordo com a alteração da letra inicial
SELECT g.email as 'E-mail do Aluno',
rsp.nome as 'Nome do Resp',
rsp.telefone as 'Telefone Resp',
rsp.rps_tel_celular as 'Celular'
FROM respalu rs
inner join respons rsp on(rsp.cod_resp = rs.cod_resp)
inner join EPP_01_2011..alunoss a on(a.matricula = rs.matricula)
inner join alunoger g on(a.matricula = g.matricula)
where rsa_tipo = 'A' and rsp.email is null and g.email <> ''
order by 1
-
A coluna rsa_tipo pertence a qual tabela?
Você precisa de apenas um tipo de responsável?
A query que você postou acima não apresentou o resultado desejado? Qual o problema?
Assinatura: http://www.imoveisemexposicao.com.br
-
pertence a tabela respons
Preciso de todos os responsáveis mas se ficasse complicado pegar todos de uma vez poderia pegar apenas um e depois eu iria pegando o restante.
A query acima Traz e-mail do aluno nome do responsavel e telefone.
Tentei alterar esta query tirei e-mail do aluno e coloquei o nome do aluno no lugar, mas não consegui inserir a turma do aluno.esta query resolveria se retornasse nome do aluno | Turma | nome do responsavel | Celular.
-
Acho que não deveria ocorrer o erro "Invalid column name 'rsa_tipo'" ao executar a query que sugeri acima já que a coluna rsa_tipo pertence a tabela respons.
Você testou a query exatamente como sugeri através do SQL Server Management Studio?
Em que linha ocorre o erro?
Assinatura: http://www.imoveisemexposicao.com.br
-
-
-
Muito obrigado gapimex e josé_Diz
Executei no nosso sistema de gestão que tem um modulo para isso e no query analyzer
Percebi o ano sim neste caso aqui vou usar 2013, o de 2011 eu estava testando em anos anteriores.
O código ficou assim
select
ass.nome, tu.turma, IsNull(ar.email,'') as [E-mail],
rsp.nome as [Nome do resp. acad.],
rsp.telefone as Telefone,
rsp.rps_tel_celular as Celular
from
epp_01_2013..alunoss ass inner join
epp_01_2013..turmalu tu on tu.matricula = ass.matricula inner join
epp_gen..alunoger ar on ass.matricula = ar.matricula inner join
respalu rs on rs.matricula = ass.matricula inner join
respons rsp on rsp.cod_resp = rs.cod_resp
where
rs.rsa_tipo = 'A' and turma = 'TF-EI1A-M'
order by
ass.nome, tu.turmausando rsp.rsa_tipo = 'A' dava o erro a seguir
Server: Msg 207, Level 16, State 3, Line 1
Invalid column name 'rsa_tipo'.daí tentei só com rs.rsa_tipo = 'A'
Assim listou os alunos com os responsáveis e telefones, mas quando altero o A de academico para F de financeiro por exemplo continua vindo o academico
Fiz o tes inserindo as turmas e funcionou blz
-
-
-
Assim listou os alunos com os responsáveis e telefones, mas quando altero o A de academico para F de financeiro por exemplo continua vindo o academico.
Porque provavelmente o que está catalogado são os mesmos responsáveis. Em princípio, os responsáveis acadêmicos são também os responsáveis financeiros. Isso poderia mudar, por exemplo, em caso de pais separados em que um dos cônjuges fica com a guarda do filho e assume a coordenação acadêmica e outro cônjuge assume o pagamento das mensalidades...
E, se alterar rsa_tipo para valor diferente de 'A', lembre-se também de alterar o cabeçalho da coluna de nome do responsável.
Melhor que altere de uma vez a linha
rsp.nome as [Nome do resp. acad.],
para
rsp.nome as [Nome do resp.],
Belo Horizonte, MG - Brasil
Sim mas aqui tem muitos pais que não são separados e que ficam um como academico e outro como responsavel e quando uso 'P' para pai e 'M' para mãe continua vindo o resp academico, de qualquer forma alterei o nome da coluna aqui como você sugeriu.
Muito obrigado.
-
-
-
José_Diz, da minha parte você pode ficar totalmente a vontade para utilizar minhas sugestões, seja total ou parcialmente, para elaborar outras sugestões para as questões do fórum.
fpsilva, segue a atualização da sugestão anterior considerando que a coluna rsa_tipo pertence a tabela respalu:
select ass.nome, tu.turma, ar.email, rsp_p.nome as 'Nome do Pai', rsp_p.telefone as 'Telefone Pai', rsp_p.rps_tel_celular as 'Celular Pai', rsp_m.nome as 'Nome da Mãe', rsp_m.telefone as 'Telefone Mãe', rsp_m.rps_tel_celular as 'Celular Mãe', rsp_a.nome as 'Nome do Resp Acad', rsp_a.telefone as 'Telefone Resp Acad', rsp_a.rps_tel_celular as 'Celular Resp Acad', rsp_f.nome as 'Nome do Resp Financ', rsp_f.telefone as 'Telefone Resp Financ', rsp_f.rps_tel_celular as 'Celular Resp Financ' from epp_01_2013..alunoss ass inner join epp_01_2013..turmalu tu on tu.matricula = ass.matricula inner join epp_gen..alunoger ar on ar.matricula = ass.matricula left join respalu rs_p on rs_p.matricula = ass.matricula and rs_p.rsa_tipo = 'P' left join respons rsp_p on rsp_p.cod_resp = rs_p.cod_resp left join respalu rs_m on rs_m.matricula = ass.matricula and rs_m.rsa_tipo = 'M' left join respons rsp_m on rsp_m.cod_resp = rs_m.cod_resp left join respalu rs_a on rs_a.matricula = ass.matricula and rs_a.rsa_tipo = 'A' left join respons rsp_a on rsp_a.cod_resp = rs_a.cod_resp left join respalu rs_f on rs_f.matricula = ass.matricula and rs_f.rsa_tipo = 'F' left join respons rsp_f on rsp_f.cod_resp = rs_f.cod_resp where tu.turma = 'TF-EI1A-M' order by ass.nome
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta fpsilva terça-feira, 7 de maio de 2013 13:22
-
-
-
O e-mail está na tabela Respons?
Se estiver experimente mais ou menos dessa forma:
select ass.nome, tu.turma, ar.email, rsp_p.nome as 'Nome do Pai', rsp_p.telefone as 'Telefone Pai', rsp_p.rps_tel_celular as 'Celular Pai', rsp_p.email as 'E-mail Pai', rsp_m.nome as 'Nome da Mãe', rsp_m.telefone as 'Telefone Mãe', rsp_m.rps_tel_celular as 'Celular Mãe', rsp_m.email as 'E-mail Mãe', -- ...
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta fpsilva terça-feira, 11 de fevereiro de 2014 16:53
-
Teve umas mudanças na tabela e antes para cada ano tínhamos um banco de dados, assim se eu quiser pegar informação de determinado ano ia no banco daquele ano, agora todos os anos estão dentro do mesmo banco. Inseri a linha and
ass.plt_cod = '31'
no final da query onde '31' corresponde ao ano de 2014, e mesmo assim está pegando pais de anos anteriores. O que pode ser?
select
ass.nome,
tu.turma,
ar.email,
ass.plt_cod,
rsp_p.nome as 'Nome do Pai',
rsp_p.telefone as 'Telefone Pai',
rsp_p.rps_tel_celular as 'Celular Pai',
rsp_p.email as 'E-mail Pai',
rsp_m.nome as 'Nome da Mãe',
rsp_m.telefone as 'Telefone Mãe',
rsp_m.rps_tel_celular as 'Celular Mãe',
rsp_m.email as 'E-mail Mãe',
rsp_a.nome as 'Nome do Resp Acad',
rsp_a.telefone as 'Telefone Resp Acad',
rsp_a.rps_tel_celular as 'Celular Resp Acad',
rsp_f.nome as 'Nome do Resp Financ',
rsp_f.telefone as 'Telefone Resp Financ',
rsp_f.rps_tel_celular as 'Celular Resp Financ'
from epp_giz..alunoss ass
inner join epp_giz..turmalu tu
on tu.matricula = ass.matricula
inner join epp_gen..alunoger ar
on ar.matricula = ass.matricula
left join respalu rs_p
on rs_p.matricula = ass.matricula and rs_p.rsa_tipo = 'P'
left join respons rsp_p
on rsp_p.cod_resp = rs_p.cod_resp
left join respalu rs_m
on rs_m.matricula = ass.matricula and rs_m.rsa_tipo = 'M'
left join respons rsp_m
on rsp_m.cod_resp = rs_m.cod_resp
left join respalu rs_a
on rs_a.matricula = ass.matricula and rs_a.rsa_tipo = 'A'
left join respons rsp_a
on rsp_a.cod_resp = rs_a.cod_resp
left join respalu rs_f
on rs_f.matricula = ass.matricula and rs_f.rsa_tipo = 'F'
left join respons rsp_f
on rsp_f.cod_resp = rs_f.cod_resp
where
tu.turma = 'ef6a'
and ass.plt_cod = '31'
order by
ass.nome
-
Foi criada uma coluna para o ano (assim como a plt_cod) nas outras tabelas? Se sim, em quais? Na Respalu?
Assinatura: http://www.imoveisemexposicao.com.br
-
-
Os alunos (e os demais dados como responsáveis e etc) são cadastrados novamente a cada ano?
O número da matrícula continua o mesmo?
Assinatura: http://www.imoveisemexposicao.com.br
-
-
Pelo que entendi não existe uma forma de identificar os responsáveis pelo aluno em um determinado ano em específico.
Acredito que será necessário fazer alguma modificação na estrutura das tabelas para que isso seja possível.
Assinatura: http://www.imoveisemexposicao.com.br