Ir para conteúdo

POWERED BY:

Arquivado

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

wills

[Resolvido] problema com select max

Recommended Posts

estou tentando selecionar o maior registro da minha tabela, porém está dando erro...."Número incorreto de argumentos usados com a função na expressão de consulta"

 

alguém sabe o porque desse erro?

 

valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

como fez a consulta e a recuperação?

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa, então é a primeira vez que utilize max....ai pesquisei mas deu erro....

 

select max (id, nomeProjeto, tipoProjeto, dataExecucao, dataSaida, status, descricao) from tableProjeto where colaborador ='" & slcColaborador & "'")

Compartilhar este post


Link para o post
Compartilhar em outros sites

so pode selecionar um campo

 

experiente usar so id

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz dessa forma:

 

"select max(id) from tableProjeto where colaborador ='" & slcColaborador & "'"

porém ele me retorna um erro : O item não pode ser encontrado na coleção correspondente ao nome ou ao ordinal solicitado.

 

que na verdade existe!

Compartilhar este post


Link para o post
Compartilhar em outros sites

faça assim

 

"select max(id) as maior from tableProjeto where colaborador ='" & slcColaborador & "'"

 

assim voce pode recuperar o maior

Compartilhar este post


Link para o post
Compartilhar em outros sites

deu na mesma...ele não encontra o id na tabela....

 

parece que ele não encontra nada na tabela... se eu retiro o max(id) coloco *, ele encontra...mas não da maneira que deveria ser

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem certeza que deu na mesma? A mensagem pode ter sido a mesma, mas o campo acessado onde deu o erro foi o mesmo?

 

Veja novamente seu primeiro SQL e o SQL utilizado por último... um pega vários campos e o outro só trás um campo.

 

Tente:

SELECT max(id), nomeProjeto, tipoProjeto, dataExecucao, dataSaida, status, descricao FROM tableProjeto WHERE colaborador ='" & slcColaborador & "' GROUP BY nomeProjeto, tipoProjeto, dataExecucao, dataSaida, status, descricao"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esta querendo exibir os outros campos também? Tente assim:

"select max(id) as maior, * from tableProjeto where colaborador ='" & slcColaborador & "';"

Compartilhar este post


Link para o post
Compartilhar em outros sites

então, deu erro novamente....

 

o do salgado imprimiu este erro: Não é possível agrupar campos selecionados com '*'.

 

e o do hargon: O item não pode ser encontrado na coleção correspondente ao nome ou ao ordinal solicitado.

 

o estranho é que só colocando o max que dá erro...

 

é melho eu postar o fonte inteiro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste seu código inteiro... a mensagem de erro pode ser a mesma, mas o que está gerando erro pode ser campos diferentes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

if acao = "salvar" then

 

txtID = request("txtID")

txtNome = request("txtNome")

slcTipo = request("slcTipo")

slcColaborador = request("slcColaborador")

txtData = request("txtData")

txtDataEx = request("txtDataEx")

txtDataTer = request("txtDataTer")

txtSite = request("txtSite")

slcStatus = request("slcStatus")

txtDrecricao = request("txtDrecricao")

 

if txtID <> "" and slcStatus = "finalizado" then

 

set busca = bd.execute("select * from tableColaborador where nomeColaborador = '" & slcColaborador & "'")

 

if not busca.eof then

eMail = busca("eMail")

end if

 

set pes = bd.execute("select * from tableProjeto where id = " & txtID)

 

if not pes.eof then

 

id = pes("id")

nomeProjeto = pes("nomeProjeto")

tipoProjeto = pes("tipoProjeto")

colaborador = pes("colaborador")

andamento = pes("status")

descricao = pes("descricao")

 

dataExecucao = pes("dataExecucao")

dataSaida = pes("dataSaida")

 

statusAndamento = request("slcStatus")

 

atualizar = "update tableProjeto set nomeProjeto = '" & txtNome & "', tipoProjeto = '" & slcTipo & "', colaborador = '" & slcColaborador & "'"

atualizar = atualizar & ",descricao = '" & txtDrecricao & "', dataEntrada = '" & txtData & "', dataExecucao = '" & txtDataEx & "'"

atualizar = atualizar & ",dataSaida = '" & txtDataTer & "', site = '" & txtSite & "', status = '" & slcStatus & "'"

atualizar = atualizar & "where id =" & txtID

set atualiza = bd.execute(atualizar)

 

on error resume next

 

para = eMail

copia = "willians@4vconnect.com"

nome = colaborador

tipo = tipoProjeto

DataEx = dataExecucao

DataTer = dataSaida

andamento = statusAndamento

Descricao = descricao

 

corpo = "<font style='font:bold 11px verdana'>Código: </font>" & "<font style='font:11px arial'>" & id & "</font>" & "<br>"

corpo = corpo & "<font style='font:bold 11px verdana'>Nome do projeto: </font>" & "<font style='font:11px arial'>" & Nome & "</font>" & "<br>"

corpo = corpo & "<font style='font:bold 11px verdana'>tipo do projeto: </font>" & "<font style='font:11px arial'>" & Tipo & "</font>" & "<br>"

corpo = corpo & "<font style='font:bold 11px verdana'>início do projeto: </font>" & "<font style='font:11px arial'>" & DataEx & "</font>" & "<br>"

corpo = corpo & "<font style='font:bold 11px verdana'>término do projeto: </font>" & "<font style='font:11px arial'>" & DataTer & "</font>" & "<br>"

corpo = corpo & "<font style='font:bold 11px verdana'>status: </font>" & "<font style='font:11px arial'>" & andamento & "</font>" & "<br>"

corpo = corpo & "<font style='font:bold 11px verdana'>descrição: </font>" & "<font style='font:11px arial'>" & Descricao & "</font>"

 

Set objCDOSYSMail = Server.CreateObject("CDO.Message")

Set objCDOSYSCon = Server.CreateObject ("CDO.Configuration")

objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "mail.4vconnect.com"

objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25

objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30

objCDOSYSCon.Fields.update

 

Set objCDOSYSMail.Configuration = objCDOSYSCon

objCDOSYSMail.From = "contato@4vconnect.com"

objCDOSYSMail.To = para

objCDOSYSMail.Bcc = copia

objCDOSYSMail.Subject = "projeto finalizado: " & nomeProjeto

objCDOSYSMail.HtmlBody = corpo

objCDOSYSMail.Send

 

Set objCDOSYSMail = Nothing

Set objCDOSYSCon = Nothing

%>

<script type="text/javascript">

window.addEvent('domready', function() {

Sexy = new SexyAlertBox();

Sexy.alert('<h1>Sucesso!</h1><p>registro alterado!</p>')

})

</script>

<%

 

end if

 

end if

 

if txtID <> "" then

 

set pes = bd.execute("select * from tableProjeto where id = " & txtID)

 

if not pes.eof then

 

atualizar = "update tableProjeto set nomeProjeto = '" & txtNome & "', tipoProjeto = '" & slcTipo & "', colaborador = '" & slcColaborador & "'"

atualizar = atualizar & ",descricao = '" & txtDrecricao & "', dataEntrada = '" & txtData & "', dataExecucao = '" & txtDataEx & "'"

atualizar = atualizar & ",dataSaida = '" & txtDataTer & "', site = '" & txtSite & "', status = '" & slcStatus & "'"

atualizar = atualizar & "where id =" & txtID

set atualiza = bd.execute(atualizar)

 

%>

<script type="text/javascript">

window.addEvent('domready', function() {

Sexy = new SexyAlertBox();

Sexy.alert('<h1>Sucesso!</h1><p>registro alterado!</p>')

})

</script>

<%

 

end if

 

else

 

insert = "insert into tableProjeto(nomeProjeto,tipoProjeto,colaborador,descricao,dataEntrada,dataExecucao,dataS

aida,site,status)"

insert = insert & "values('" & txtNome & "', '" & slcTipo & "', '" & slcColaborador & "', '" & txtDrecricao & "', '" & txtData & "'"

insert = insert & ",'" & txtDataEx & "', '" & txtDataTer & "', '" & txtSite & "', '" & slcStatus & "')"

set salvar = bd.execute(insert)

 

set enviaMail = bd.execute("select eMail from tableColaborador where nomeColaborador = '" & slcColaborador & "'")

 

if not enviaMail.eof then

para = enviaMail("eMail")

end if

 

set pesProjeto = bd.execute("SELECT max(id) FROM tableProjeto WHERE colaborador ='" & slcColaborador & "'")

 

if not pesProjeto.eof then

 

id = pesProjeto("id")

Nome = pesProjeto("nomeProjeto")

Tipo = pesProjeto("tipoProjeto")

DataEx = pesProjeto("dataExecucao")

DataTer = pesProjeto("dataSaida")

andamento = pesProjeto("status")

Descricao = pesProjeto("descricao")

 

response.Write(id & "<br />" & Nome & "<br />" & Tipo & "<br />" & DataEx & "<br />" & DataTer & "<br />" & andamento & "<br />" & Descricao)

 

 

on error resume next

 

corpo = "<font style='font:bold 11px verdana'>Código: </font>" & "<font style='font:11px arial'>" & id & "</font>" & "<br>"

corpo = corpo & "<font style='font:bold 11px verdana'>Nome do projeto: </font>" & "<font style='font:11px arial'>" & Nome & "</font>" & "<br>"

corpo = corpo & "<font style='font:bold 11px verdana'>tipo do projeto: </font>" & "<font style='font:11px arial'>" & Tipo & "</font>" & "<br>"

corpo = corpo & "<font style='font:bold 11px verdana'>início do projeto: </font>" & "<font style='font:11px arial'>" & DataEx & "</font>" & "<br>"

corpo = corpo & "<font style='font:bold 11px verdana'>término do projeto: </font>" & "<font style='font:11px arial'>" & DataTer & "</font>" & "<br>"

corpo = corpo & "<font style='font:bold 11px verdana'>status: </font>" & "<font style='font:11px arial'>" & andamento & "</font>" & "<br>"

corpo = corpo & "<font style='font:bold 11px verdana'>descrição: </font>" & "<font style='font:11px arial'>" & Descricao & "</font>"

 

'Set objCDOSYSMail = Server.CreateObject("CDO.Message")

'Set objCDOSYSCon = Server.CreateObject ("CDO.Configuration")

'objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "mail.4vconnect.com"

'objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25

'objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

'objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30

'objCDOSYSCon.Fields.update

 

'Set objCDOSYSMail.Configuration = objCDOSYSCon

'objCDOSYSMail.From = "contato@4vconnect.com"

'objCDOSYSMail.To = para

'objCDOSYSMail.Subject = "cadastro de projeto"

'objCDOSYSMail.HtmlBody = corpo

'objCDOSYSMail.Send

 

'Set objCDOSYSMail = Nothing

'Set objCDOSYSCon = Nothing

 

%>

<script type="text/javascript">

window.addEvent('domready', function() {

Sexy = new SexyAlertBox();

Sexy.alert('<h1>Sucesso!</h1><p>projeto registrado!</p>')

})

</script>

<%

end if

 

end if

 

end if

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz alguns testes aqui, e não deu certo usando GROUP BY.

 

Só consegui fazendo duas consultas, uma para pegar o MAX e outra para pegar os dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

pode pegar o resto dos dados usando uma sub query

Compartilhar este post


Link para o post
Compartilhar em outros sites
select * from tableProjeto where id = (select MAX(id) from tableProjeto)

Compartilhar este post


Link para o post
Compartilhar em outros sites

que bom entao

 

abraços

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.