GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Datas em um JOIN?


#1

Olá! Tenho uma pequena dúvida em mySQL que pode ser até mesmo boba.

Tenho duas tabelas, sendo uma de registro dos alunos e outra para relatórios.
Para utilizar as dos alunos, utilizo a seguinte sintaxe podendo calcular a idade do aluno e apresentar na minha aplicação.

"SELECT *, TIMESTAMPDIFF(YEAR, nasc , NOW()) AS idade FROM register"

A parte chata é que preciso preciso recuperar os dados dos alunos na tabela de relatórios, assim utilizo um join como o exemplo abaixo, mas infelizmente não consigo utilizar o TIMESTAMPDIFF para calcular e nem um DATE(campo) para dividir o TIMESTAMP do relatório onde fica registrado as saídas…

Como posso acrescentar esses registros de tempo/data nesse join?

SELECT s.rm as RM, s.nome as nome, s.cpf, s.sexo, s.nasc, r.saida from register s INNER JOIN report r ON s.rm = r.rm order by saida desc;


#2

Felizmente consegui realizar a tarefa necessária depois de quase 2 dias tentando… Era só chamar a função direto.


#3

@Wilian_Silva
Já tentou fazer uma subquery com o resultado obtido através da query postada?
Ex:

SELECT TIMESTAMPDIFF(YEAR, SS.NASC , NOW()) AS IDADE  
	FROM(
		SELECT 
			S.RM AS RM
			, S.NOME AS NOME
			, S.CPF, S.SEXO
			, S.NASC
			, R.SAIDA 
		FROM 
			REGISTER S 
		INNER JOIN 
			REPORT R 
		ON 
			S.RM = R.RM 
		ORDER BY SAIDA DESC
		) AS SS 

Tenta fazer isto. seja apresentado algum erro, deixe-me saber!

Atenciosamente,

Felipe Cabral.


#4

Realmente subquery é o ideal para a realização. Eu tinha visto algo do gênero, mas não sabia como executar no meu projeto.

Muitíssimo obrigado @felipescabral!