Usuário com melhor resposta
Funções MAX e MIN

Pergunta
-
Estou tentando obter o ultimo treinamento realizado por curso, e está apresentando o primeiro.
Ex: curso 1, Treinamentos: 21/08/2011, 08/10/2012
SELECT id_Curso AS Expr1, MAX(CONVERT(varchar(10), data_inicioTreinamento, 103)) AS maxData FROM TreinamentoProgramacao WHERE (realizado = 1) GROUP BY id_Curso
Se eu uso a a função Min, o resultado é o esperado. Porque?
SELECT id_Curso AS Expr1, MIN(CONVERT(varchar(10), data_inicioTreinamento, 103)) AS maxData FROM TreinamentoProgramacao WHERE (realizado = 1) GROUP BY id_Curso
[b]Sergio Ivanenko[/b]
Respostas
-
Boa noite,
Para obter o resultado esperado será necessário manter a coluna data_inicioTreinamento no tipo Date (ou semelhante), sem a conversão para varchar com o parâmetro 103 (dd/mm/yyyy).
Ao converter para varchar, vale a ordem alfabética, por isso 21/08/2011 é maior que 08/10/2012.
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta Ivanenko terça-feira, 9 de outubro de 2012 01:22
-
Sim,
exemplo: é fazer o convert primeiro e depois o max
SELECT convert(varchar(10),MAX(DATAPEDIDO),103) FROM T_PEDIDO
Atenciosamente, Ruberlei.
Todas as Respostas
-
Cara, isso não tem lógica.
O max traz a maior data e o min traz a menor. Simples assim.
Claro que é com base no agrupamento realizado, o que não muda a lógica da coisa.
Como estão seus registros? Quais as datas da tabela?
E, principalmente, qual data o Max e o MIn estão trazendo???
Roberson Ferreira - Database Developer
Acesse: www.robersonferreira.com.br
Email: contato@robersonferreira.com.brSe esta sugestão for útil, por favor, classifique-a como útil.
Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta. -
Boa noite,
Para obter o resultado esperado será necessário manter a coluna data_inicioTreinamento no tipo Date (ou semelhante), sem a conversão para varchar com o parâmetro 103 (dd/mm/yyyy).
Ao converter para varchar, vale a ordem alfabética, por isso 21/08/2011 é maior que 08/10/2012.
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta Ivanenko terça-feira, 9 de outubro de 2012 01:22
-
Boa noite, Ivanenko,
Eu fiz teste e o convert ta fazendo com que essa situação ocorra já que tudo está sendo convertido para varchar e não está sendo utilizado o max da data.
Atenciosamente,
Ruberlei.
-
-
Sim,
exemplo: é fazer o convert primeiro e depois o max
SELECT convert(varchar(10),MAX(DATAPEDIDO),103) FROM T_PEDIDO
Atenciosamente, Ruberlei.
-