Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Consulta


DiegoVix

Pergunta

Boa tarde!!!!

Tabela SITUACAO

Matricula Referencia padrão

--------------------------------------- --------------------------------------- ---------------------------------------

167 NULL NULL

167 NULL NULL

167 19 21

167 21 21

Tabela SERVIDOR

Matricula Referencia padrão

--------------------------------------- --------------------------------------- ---------------------------------------

167 21 21

É O SEGUINTE, EU TENHO ESSAS DUAS TABELAS NO BANCO QUE FUNCIONA DA SEGUINTE FORMA, EU TENHO UM SERVIDOR, E PRO SERVIDOR EU TENHO UMA SITUAÇÃO... CONFORME VAI PASSANDO O TEMPO DE TRABALHO DELE, EU VO ADCIONANDO UMA SITUAÇÃO NOVA... E A SITUAÇÃO QUE ELE SE ENCONTRAVA (ANTIGA) FICA ARMAZENADA. QUANDO EU INCLUO UMA NOVA SITUAÇÃO A ESSE SERVIDOR... AUTOMATICAMENTE... ESSA SITUAÇÃO MUDA TAMBEM NA TELA SERVIDOR... SENDO QUE A SITUAÇÃO QUE É A ULTIMA CADASTRADA NA TABELA SITUAÇÃO, É A QUE MOSTRA ATUAL NA TABELA SERVIDOR.

EU QUERO FAZER UM SELECT QUE ME TRAGA TODAS MATRICULAS QUE POSSUI O ULTIMO REGISTRO DA TABELA SITUAÇÃO, DIFERENTE DA TABELA SERVIDOR

EX COM ERRO:

Matricula Referencia padrão

--------------------------------------- --------------------------------------- ---------------------------------------

167 NULL NULL

167 NULL NULL

167 19 21

167 21 21

Tabela SERVIDOR

Matricula Referencia padrão

--------------------------------------- --------------------------------------- ---------------------------------------

167 19 21

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Boa tarde Diego,

Dá uma olhada se é isto que está precisando. Criei as temporárias e comentei:

-- Criação temporária
create table #SITUACAO (Matricula int, Referencia int, padrão int)
-- Carga
insert into #SITUACAO values(167, NULL, NULL)
insert into #SITUACAO values(167, NULL, NULL)
insert into #SITUACAO values(167, 19, 21)
insert into #SITUACAO values(167, 21, 21)

-- Criação temporária
create table #SERVIDOR (Matricula int, Referencia int, padrão int)
-- Carga
insert into #SERVIDOR values(167, 21, 21)

-- Verificação
select * from #SITUACAO
select * from #SERVIDOR

-- Script
select si.matricula, max(si.referencia), si.padrão from #SITUACAO si
where si.referencia <> (select referencia from #SERVIDOR where matricula=si.matricula)
group by si.matricula, si.padrão

Link para o comentário
Compartilhar em outros sites

  • 0
Boa tarde Diego,

Dá uma olhada se é isto que está precisando. Criei as temporárias e comentei:

-- Criação temporária
create table #SITUACAO (Matricula int, Referencia int, padrão int)
-- Carga
insert into #SITUACAO values(167, NULL, NULL)
insert into #SITUACAO values(167, NULL, NULL)
insert into #SITUACAO values(167, 19, 21)
insert into #SITUACAO values(167, 21, 21)

-- Criação temporária
create table #SERVIDOR (Matricula int, Referencia int, padrão int)
-- Carga
insert into #SERVIDOR values(167, 21, 21)

-- Verificação
select * from #SITUACAO
select * from #SERVIDOR

-- Script
select si.matricula, max(si.referencia), si.padrão from #SITUACAO si
where si.referencia <> (select referencia from #SERVIDOR where matricula=si.matricula)
group by si.matricula, si.padrão

PO FULVIO... É ISSO MESMO... OU MELHOR... É QUASE RSSS... É porque TIPO ASSIM, EU QUERO QUE A CONSULTA SO ME TRAGA AS MATRICULAS QUE ESTAO COM DIFERENÇA ENTRE A ULTIMA SITUAÇÃO CADASTRADA

EXE:

TABELA SITUAÇÃO

T01001_I_MATRICULA T01015_I_CDREF T01025_I_CDPADRAO

--------------------------------------- --------------------------------------- ---------------------------------------

157945 NULL NULL

157945 6 91

157945 7 91

157945 8 91

157945 9 91

157945 9 97

157945 NULL NULL

157945 NULL NULL

157945 8 96

157945 8 96 (ESSE REG CONFERE COM A TABELA SERVIDOR)

TABELA SERVIDOR

T01001_I_MATRICULA T01015_I_CDREF T01025_I_CDPADRAO

--------------------------------------- --------------------------------------- ---------------------------------------

157945 8 96

SCRIPT CRIADO

T01001_I_MATRICULA T01025_I_CDPADRAO

--------------------------------------- --------------------------------------- ---------------------------------------

157945 9 97

VIU O CASO AI... ELE TA PEGANDO A ULTIMA SITUAÇÃO QUE FOI CADASTRADA ERRADA... MAS DEPOIS DELA VIERAM OUTRAS... EU QUERO QUE ELE CONFERE SOMENTE O ULTIMO REGISTRO LANÇADO NA TABELA SITUAÇÃO??? E MEIO COMPLICADO ACHO DE EU TE EXPLICAR...RSSS... MAS você CONSEGUIU ENTENDER???

Link para o comentário
Compartilhar em outros sites

  • 0

Boa tarde Diego,

Ai você pode pegar o mesmo script e alterar somente o max(XXXX).

No script q passei:

select si.matricula, max(si.referencia), si.padrão from #SITUACAO si

where si.referencia <> (select referencia from #SERVIDOR where matricula=si.matricula)

group by si.matricula, si.padrão

você pode trocar a variável max da referencia pelo que precisar. No seu caso, se quiser pegar o ultimo, pegue o max da data de inserção (se tiver). Ai coloque o campo no group by também...

Link para o comentário
Compartilhar em outros sites

  • 0
Boa tarde Diego,

Ai você pode pegar o mesmo script e alterar somente o max(XXXX).

No script q passei:

select si.matricula, max(si.referencia), si.padrão from #SITUACAO si

where si.referencia <> (select referencia from #SERVIDOR where matricula=si.matricula)

group by si.matricula, si.padrão

você pode trocar a variável max da referencia pelo que precisar. No seu caso, se quiser pegar o ultimo, pegue o max da data de inserção (se tiver). Ai coloque o campo no group by também...

Bom dia Fulvio,

Deu certo... fui pela data!!!!!

Muito Obrigado

ATT

Diego

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...