Ir para conteúdo

POWERED BY:

Arquivado

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

sergiocacique

Inner Join

Recommended Posts

Galera estou fazendo esse SELECT com INNER JOIN até ai está funcionando perfeito, a dúvida e a seguinte estou tentando pegar o ultimo registro cadastrado na tabela COLUNA nas ele está trazendo sempre o primeiro registro.

 

fiquei horas e horas e não consegui achar uma solução.

 

strSQL_cols = "SELECT Colunista.CdColunista, Colunista.Nome, Colunista.Sobrenome, Colunista.NomeColuna, Colunista.Img, "

strSQL_cols = strSQL_cols &" Colunista.Ativo, Coluna.CdColuna, Coluna.Titulo, Coluna.Ativo, Coluna.DtCadastro "

strSQL_cols = strSQL_cols &" FROM Colunista "

strSQL_cols = strSQL_cols &" INNER JOIN Coluna ON Colunista.CdColunista = Coluna.CdColunista "

strSQL_cols = strSQL_cols &" WHERE Colunista.Ativo = 'sim' "

strSQL_cols = strSQL_cols &" GROUP BY Colunista.CdColunista, Colunista.Nome"

strSQL_cols = strSQL_cols &" ORDER BY Coluna.DtCadastro DESC"

set rsColunas = abredb.execute(strSQL_cols)

Compartilhar este post


Link para o post
Compartilhar em outros sites

vc pode antes recuperar o ultimo registro incluido, vc pode usar o SQL Last()
A função Last() retorna o último valor da coluna selecionada.

SELECT LAST(column_name) FROM table_name



existem alguns tópicos sobre este assunto no forum, da´uma pesquisada...

no SQL SERVER, você pode recuperar essa valor com

SELECT @@IDENTITY

no MySQL vc pode usar o LAST_INSERT_ID()

Olha este exemplo, último registro e somar + 1 e inserir no bd

 

<%@ Language=VBScript %>
<% Option Explicit %>
<%
'conexao teste com  mdb
Dim localbd, bd

Set bd = Server.CreateObject("ADODB.Connection")
localbd = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source =" & Server.MapPath("banco.mdb")
bd.Open localbd

Dim sql, rs
Dim cd_pedido

Set rs = Server.CreateObject("ADODB.RecordSet")

if Request.Form("btenvia") = "Gerar Numero" then
        'Novo numero
        SQL = "SELECT MAX(N_PEDIDO)+1 AS ULITMO_PEDIDO FROM PEDIDO"
        Set rs = bd.Execute (sql)
        cd_pedido = rs.Fields("ULITMO_PEDIDO").Value
        
        'inserindo novo numero
        bd.Execute ("INSERT INTO PEDIDO (N_PEDIDO) VALUES (" & cd_pedido & ")")
        rs.Close
        
end if

'verificando numero
SQL = "SELECT MAX(N_PEDIDO) AS ULITMO_PEDIDO FROM PEDIDO"
Set rs = bd.Execute (sql)
cd_pedido = rs.Fields("ULITMO_PEDIDO").Value


rs.Close
Set rs = Nothing

bd.Close
Set bd = Nothing
%>
<html>
<head>
<title>Numero Sequencial</title>
</head>
<body>
<center>
<form  id="frm" action="Numero_Sequencial.asp" method="post">
Numero do ultimo pedio:<%=cd_pedido%><br>
<input type="submit" id="btenvia" name="btenvia" value="Gerar Numero" />
</form>
</center>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

o seu campo dtCadastro é do tipo data ou varchar? para funcionar como vc quer tem que ser do tipo data.

da forma como você colocou tem um group by apenas de 2 campos, esse select provavelmente está dando erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

usa o Last() dentro da sua SQL, ou faz na mão como no exemplo acima e apenas concatene na SQL

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.