PRIMEIRAS OCORRNCIAS

 Tópico anterior Próximo tópico Novo tópico

PRIMEIRAS OCORRNCIAS

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#454543 - 28/11/2015 12:44:07

SINCLAIR
CRICIUMA
Cadast. em:Janeiro/2001


Última edição em 28/11/2015 12:44:48 por ZEUZEBIO3

Prezados,

Estou apanhando para as funes min() e group by. Eita idade que no pra de crescer... eita neurnios que no param de falecer.

Tenho uma tabela de logs de acesso a determinados locais e preciso pegar o primeiro acesso de cada local, conforme exemplifico abaixo:

Banco: PostGreSQL

Tabela de origem: historico_acessos

--------------    --------------    --------------   --------------
dt_log            hr_log            usuario          Local    
--------------    --------------    --------------   --------------
28/11/2015        08:53:15          Fulano           NEO_25
28/11/2015        08:20:15          Ciclano          NEO_25
28/11/2015        08:17:27          Fulano           NEO_27
28/11/2015        08:19:27          Fulano           NEO_27
28/11/2015        09:25:00          Beltrano         NEO_34
28/11/2015        10:11:20          Fulano           NEO_25

Resultado desejado com a Query
(de cada local listar o primeiro acesso)

--------------    --------------    --------------   --------------
dt_log            hr_log            usuario          Local    
--------------    --------------    --------------   --------------
28/11/2015        08:20:15          Ciclano          NEO_25
28/11/2015        08:17:27          Fulano           NEO_27
28/11/2015        09:25:00          Beltrano         NEO_34

Algum colega pode ajudar?

Tudo de bom.


Euzbio Cruz
Cricima - SC


Resposta escolhida #454545 - 28/11/2015 16:00:22

DS2T
BARRA MANSA
Cadast. em:Novembro/2010


Última edição em 28/11/2015 17:40:15 por DS2T

(Contedo removido por lerdice do usurio que postou haha)

Abraos!


[]Cansei de frases intelectuais[] - Eu mesmo


#454551 - 28/11/2015 17:23:01

SINCLAIR
CRICIUMA
Cadast. em:Janeiro/2001


Obrigado, colega DS2T.

Vou testar e darei retorno.

Muito obrigado.



Euzbio Cruz
Cricima - SC


#454552 - 28/11/2015 17:38:51

DS2T
BARRA MANSA
Cadast. em:Novembro/2010


Li aqui de novo e j vou te adiantando que acho que respondi cagada hahaha
Isso que te passei vai pegar a menor data e o menor horrio, independente se o horrio referente a data ou no. Fora que o group by vai ficar escroto com aquele Id ali. Viajei bonito hahaha


SELECT
          id,
          local,
          data,
          MIN(hr_log) AS Horario
FROM
        historico_acessos  JOIN
(SELECT
        MAX(id) AS id,
        MIN(dt_log) AS Data,
        local
FROM
        historico_acessos
GROUP BY
        local) AS T  ON historico_acessos.id = T.id  
GROUP BY
    id, local, data


[]Cansei de frases intelectuais[] - Eu mesmo


#454553 - 28/11/2015 18:10:34

SINCLAIR
CRICIUMA
Cadast. em:Janeiro/2001


Última edição em 28/11/2015 18:11:47 por ZEUZEBIO3

Colega DS2T,

No primeiro caso funcionou muito bem.

No segundo caso, o qual seria o necessrio por incluir o nome do usurio, duplicou toda a tabela ( tabela x 2 ).

Mas com a cuca mais fresca, amanh (domingo) eu acredito que resolvo.

De qualquer forma te agradeo o empenho em postar suas idias de soluo.

Encerrarei o tpico na segunda-feira, com ou sem soluo.

Tudo de bom!


Euzbio Cruz
Cricima - SC


#454554 - 28/11/2015 18:24:03

DS2T
BARRA MANSA
Cadast. em:Novembro/2010


Essa nova soluo que postei por ltimo, ao perceber o erro que tinha cometido tambm no funcionou?
Abraos!

[]Cansei de frases intelectuais[] - Eu mesmo


#454555 - 28/11/2015 19:34:53

SINCLAIR
CRICIUMA
Cadast. em:Janeiro/2001


Boa noite, Colega DS2T

Mais uma vez te agradeo o empenho.

A ltima tentativa retornou 18 linhas para uma tabela com 11 registros. Pegou registros fora do perodo especificado, quando coloquei um where para a data de log ser 28/11/2015.

Deixa quieto, colega. sbado a noite. Estamos todos exaustos.

Vou trabalhar em outras questes e na segunda-feira volto a este assunto.

Tudo de bom para ti, colega!



Euzbio Cruz
Cricima - SC


#454556 - 28/11/2015 20:05:51

DS2T
BARRA MANSA
Cadast. em:Novembro/2010


Última edição em 28/11/2015 20:06:47 por DS2T

Ahh t. Pensei que voc queria selecionar a data mnima no banco tambm. Por isso essas queries loucas.
Dessa vez no tem erro. Eu at criei um banco de dados e testei hahaha  S que fiz em SQL Server, mas no deve dar problema algum.

SELECT
     *
FROM
    historico_acessos JOIN
    (SELECT
              MAX(historico_acessos.id) AS Id,
              MIN(historico_acessos.hr_log) AS Horario
    FROM
            historico_acessos
    WHERE
             historico_acessos.dt_log=[]2015-11-28[]
    GROUP BY
        historico_acessos.local) AS T ON historico_acessos.id = T.id


No caso, seu Where fica dentro do sub-select.


Sobre estar exausto hahaha Pior que no cara. Desempregado, energia de sobra.. at mais do que eu gostaria hahaha O ponto alto da minha semana foi quando rasguei o p num caco de piso e levei uns pontos.

Precisando de ajuda, d um toque.

Valeu!


[]Cansei de frases intelectuais[] - Eu mesmo


#454557 - 28/11/2015 21:02:08

SINCLAIR
CRICIUMA
Cadast. em:Janeiro/2001


Última edição em 28/11/2015 21:07:08 por ZEUZEBIO3

 Anexos estao visíveis somente para usuários registrados

Colega DS2T,

Mais uma vez obrigado por sua ajuda.

Eu, na verdade, precisaria pegar a tabela de contas e buscar no log das contas quem foi o usurio que primeiro quitou a conta, alm de diversos outros dados de vrias outras tabelas.

Usei a tabela mais simples que informei no incio do post porque se houvesse a lgica que o resolvesse, o resto seria adaptao.

Eu tinha conseguido quando vi  seu post mais recente. Funciona tambm e fcil de adaptar ao PostGreSQL (na verdade nada muda).

Vou encerrar o post e te pontuar, porque merece e muito.

S para fins de curiosidade, caso queira, veja como ficou a minha View final (funcionando)...

Est em anexo, porque to longa, gigantesca que no caberia aqui dentro do espao para texto (so 278 linhas de cdigo na consulta SQL buscando do Ado at nossas dcimas futuras geraes, l do mais distante porvir).

Tudo de bom, Colega!



Euzbio Cruz
Cricima - SC


 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por SINCLAIR em 28/11/2015 21:07:32