Usuário com melhor resposta
Select MAX

Pergunta
-
Bom dia Pessoal,
Preciso fazer um select que me retorne o maior valor de um campo de um grupo de registros. Por exemplo:
Tenho uma tabela:
Codigo CodigoModelo NomeModelo PrimeiroAno UltimoAno 1 1 1.3 L 8V 1976 1981 2 1 1.3 GL 8V 1978 1981 3 1 1.3 GLS 8V 1978 1981 4 1 1.3 Rallye 8V 1980 1981 5 1 1.3 C 8V 1981 1987 6 1 1.3 CL 8V 1981 1987 7 1 1.3 Pick Up City CS 8V 1981 1988 8 1 1.3 Racing 8V 1981 1982 9 1 1.3 TOP 8V 1982 1983 10 1 1.3 Fiorino Pick UP 8V 1985 1988 11 1 1.3 Fiorino Furgão 8V 1986 1987 12 2 1.6 MPI ELX 16V 1995 2003 13 2 1.6 MPI SX 16V 99CV 1996 1996 14 2 1.6 MPI SX 16V 16CV 1999 2003 15 2 1.6 MPI HGT 16V 2000 2003 16 3 2.0 16V 1995 1997 17 3 2.0 FX 16V 1997 2001 18 3 4.2 V8 2002 2002 Preciso saber qual é o Ultimo Ano do modelo 1 (CodigoModelo)
Tentei fazer o select como esse abaixo:
<%
'###Retorna anos correspondente ao modelo selecionado
Set cmdAnoModelo = Server.CreateObject("ADODB.Command")
cmdAnoModelo.ActiveConnection = DataVeiculos
cmdAnoModelo.CommandText = "SELECT MAX(ULTIMOANO) FROM TBLVersoes where CodigoModelo = 1"
cmdAnoModelo.CommandType = 1
Set rsAnoModelo = Server.CreateObject("ADODB.Recordset")
rsAnoModelo.Open cmdAnoModelo, , 3, 3Response.write rsAnoModelo("ultimomodelo")
%>
Mas o seguinte erro aparece:
Tipo de erro:
ADODB.Recordset (0x800A0CC1)
O item não pode ser encontrado na coleção correspondente ao nome ou ao ordinal solicitado.
/teste.asp, line 12O que estou fazendo de errado?
Fico no aguardo...
Respostas
-
Bom Dia,
Quando você montou o select não havia nenhum campo chamado "ultimomodelo" havia apenas uma expressão MAX(UltimoAno). Como saber que ela se trata do "ultimomodelo". Você precisa efetuar um Alias. Ex:
SELECT MAX(UltimoAno) As UltimoModelo FROM TBLVersoes WHERE CodigoModelo = 1
Ou se preferir, use o RecordSet com base na posição. Ex:
Response.Write rsAnoModelo(0)
[ ]s,
Gustavo
Todas as Respostas
-
Bom Dia,
Quando você montou o select não havia nenhum campo chamado "ultimomodelo" havia apenas uma expressão MAX(UltimoAno). Como saber que ela se trata do "ultimomodelo". Você precisa efetuar um Alias. Ex:
SELECT MAX(UltimoAno) As UltimoModelo FROM TBLVersoes WHERE CodigoModelo = 1
Ou se preferir, use o RecordSet com base na posição. Ex:
Response.Write rsAnoModelo(0)
[ ]s,
Gustavo
-