Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Renata Pedrosa

[Resolvido] Select complicado ou impossivel?

Recommended Posts

Ex:1 - digamos que eu passe o funcionario 4 como parametro

 

TB-PROCESSO

id-processo

10

 

TB-DETALHES

id-detalhes----------idp-processo-----idf-funcionario

1---------------------10-----------------6

2---------------------10-----------------5

3---------------------10----------------4

 

( entao o processo 10 me interessa pq na tb detalhes o ultimo registro referente ao processo 10 é do funcionario 4( passado como parametro), então significa que o processo esta com este funcionario )

 

 

Ex:2 digamos que eu passe o funcionario 4 como parametro

TB-PROCESSO

id-processo

11

 

TB-DETALHES

id-detalhes-----------idp-processo----idf-funcionario

4----------------------11----------------6

5----------------------11---------------4

6----------------------11----------------2

 

( entao o processo 11 não me interessa pq na tb detalhes o ultimo registro referente ao processo 11 não é do funcionario 4(passado como parametro), então o processo nao esta com ele. )

 

 

Me passaram a procedure abaixo como exemplo, mas verifiquei que é preciso ter uma outra condição para colocar em HAVING não é isso? então nao deu certo pra mim!

 

USE teste

GO

CREATE PROCEDURE sp_seleciona_por_func

@id_func int

AS

SELECT PROCESSO.id_processo FROM PROCESSO

INNER JOIN DETALHES ON PROCESSO.id-processo = DETALHES.idp-processo

WHERE DETALHES.idf-funcionario = @id_func

GROUP BY PROCESSO.id-processo

HAVING MAX(DETALHES.id-detalhes) ????????????????????????????????????????

 

 

 

Sera que é possivel...?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom o que você quer é pegar o ultimo registro da tabela tb-detalhes né..

 

Tenta assim assim :

SELECT MAX(DETALHES.id-detalhes),PROCESSO.id_processo FROM PROCESSO 
INNER JOIN DETALHES ON PROCESSO.id-processo = DETALHES.idp-processo
WHERE DETALHES.idf-funcionario = @id_func
GROUP BY PROCESSO.id-processo

good luck

Compartilhar este post


Link para o post
Compartilhar em outros sites

não, o complicado é isso.

 

1)

Na verdade eu preciso saber qual usuario inclui mais processos, ( entao o criador do processo é o primeiro registro gerado na tabela DETALHES referente a esse processo.)

 

2)

Preciso saber onde o processo se encontra, ( entao o processo esta com o ultimo registro gerado na tabela DETALHES referente a esse processo.)

 

Mais especificamente

 

Me mostre todos os protocolos criado por FULANO DE TAL

Me mostre todos os protocolos que estão com FULANO DE TAL

 

O que eu quero mostrar na tela é a relação dos PROTOCOLOS que atendem a minha pesquisa.

 

PROTOCOLOS DE FULANO

80

91

70

90

 

 

 

Voce quer essa comparação para todos os processos?

Se voce precisa apenas verificar um processo poderia passar esse dado como parametro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Os processos que estão com ele podem ser feitos assim:

 

SELECT id_processo FROM tb_detalhe WHERE id_pessoa = @id_func AND id_detalhe IN (SELECT MAX(tb_detalhe.id_detalhe) FROM tb_processo INNER JOIN tb_detalhe ON tb_processo.id_processo = tb_detalhe.id_processo
GROUP BY tb_processo.id_processo)

 

Para pegar os que foram criados por ele substitua o MAX por MIN

 

OBS: alterei os nomes das tabelas e campos, mas acho que voce consegue entender

Compartilhar este post


Link para o post
Compartilhar em outros sites

valeu kandrade... funcionou!!! muito obrigada!

 

Os processos que estão com ele podem ser feitos assim:

 

SELECT id_processo FROM tb_detalhe WHERE id_pessoa = @id_func AND id_detalhe IN (SELECT MAX(tb_detalhe.id_detalhe) FROM tb_processo INNER JOIN tb_detalhe ON tb_processo.id_processo = tb_detalhe.id_processo
GROUP BY tb_processo.id_processo)

 

Para pegar os que foram criados por ele substitua o MAX por MIN

 

OBS: alterei os nomes das tabelas e campos, mas acho que voce consegue entender

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.