Ir para conteúdo

POWERED BY:

Arquivado

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

Inside

Excluir IDs de uma consulta

Recommended Posts

Caros amigos,

eu tenho isso aqui que vem de uma consulta: 55,82,78,143,64,170,

São IDs. Preciso pegar esse esses IDs e eliminá-los de outra consulta que está em outra tabela.

Isto é, preciso mostrar resultados de uma tabela eliminando os IDs acima, eles não vão ser fixos vão variar.

Como eu faço isso? Alguém sabe?

*Coloquei a "," nos IDs porque achei que poderia fazer um Split mas não deu certo.

SQL = "SELECT * from matricula where id <> " & arrayIdAluno(0) & " and idperiodo = " & request.queryString("id_periodo") & " and educacaoid = " & request.queryString("id_educacao") & " order by aluno"

 


Obrigado pela atenção de todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

VocÊ quer fazer um filtro baseado em que, por favor esclareça um pouco mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos a um exemplo:

Vet =split("55,82,78,143,64,170,",",")

For i =0 to ubound(vet) -1

SQL ="delete from tabela where campo =" & vet(i)

Execute a sql

Next

 

Desta maneira vc apaga os índices desta outra tabela...

Att;



É claro que no split VC irá colocar uma variável

Compartilhar este post


Link para o post
Compartilhar em outros sites

relendo que vc quer é não exclui-los mas simplesmente não mostrar esses IDs... entendi...

 

Ja que vc montou aqueles ids separando por virgula, mude para campoDaoutraconsulta <> seuId or campoDaoutraconsulta <> seuId or...

 

depois vc concatena com a sua SQL incompleta que estará esperando por essa variável...

 

deu para entender?

estou escrevendo no table e é horrível... depois posto um exemplo mas da para fazer sim....

att;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro Gustavo,

 

realmente eu não quero excluir apenas quero que não apareça os IDs que mostrei acima.

 

 

São duas tabelas cujo os IDs se cruzam e uma não pode mostrar o ID da outra.

 

É assim: Primeiro eu colo os IDs do aluno em tabelam de matricula, aquele que já está matriculado não pode aparecer mas tive que fazer em tabelas diferentes agora preciso cruzar os dados e não mostrar em próxima etapa quem está matriculado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para ficar melhor, vc pode listar os Id´s que tem com uma opção de visualizar os mesmos e com um checkbox para selecionar o que quer excluir, fica mais gerenciável. Tipo assim:

 

Listagem

<%
'Abre o objeto de conexão
Set conObj = Server.CreateObject("ADODB.Connection")
conObj.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("database.mdb") & ";"

'Abre o objeto recordset
Set rs = Server.CreateObject("ADODB.Recordset")
sql = "SELECT * FROM sample"
rs.Open sql,conObj,3,3

'Move para o primeiro registro
rs.MoveFirst

'Imprime a tag de fonte. Apenas para controle de HTML
Response.write("<font face=""verdana"" size=""2"">")

'Imprime os resultados com o link para deleção
While not rs.EOF
%>
Registro <b><%=rs("id")%></b>: <%=rs("nome")%>   -   <a href="apaga_main.asp?id=<%=rs("id")%>">Apagar registro</a>
<p>
<%
'Movimenta o cursor para o próximo registro
rs.MoveNext

'Termina o loop criado pelo while
Wend

'Fecha o objeto recordset e o mata
rs.Close
Set rs = nothing

'Fecha o objeto de conexão e o mata
conObj.Close
Set conObj = nothing
%>

Excluir

<%
Set conObj = Server.CreateObject("ADODB.Connection")
conObj.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("database.mdb") & ";"
id = Request.QueryString("id")
sql = "DELETE FROM sample WHERE id=" & id
conObj.Execute(sql)
conObj.Close
Set conObj = nothing
Response.Redirect("apaga_success.asp")
%>

Sucesso

<html>
<body>
O processo de Exclusãofoi realizado.
' aqui vc pode dar Response.redirect com um parametro na querysting e recuperar na page principal e abrir um pop-up que se fecha após x segundos
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro xanburzum,

 

não quero excluir só que que nesta select abaixo não mostre os ID que puxei de outra tabela:

 

SQL = "SELECT * from matricula where id <> " & arrayIdAluno(0) & " and idperiodo = " & request.queryString("id_periodo") & " and educacaoid = " & request.queryString("id_educacao") & " order by aluno"

 

Eu tenho 2 tabelas:

 

turmas_alunos

 

matricula

 

 

Em um determinado arquivo ASP eu tenho que listar os alunos da tabela "matricula" retirando os alunos que estão na tabela "turmas_alunos".

 

Cruzamento de dados para ser mais exato e o comparador é o ID, mas não sei como fazer isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos ao seu exemplo:

 

seu dado antigo

ids = "55,82,78,143,64,170,"

 

ficará assim!!

 

ids = "id <> 55 or id <> 82 or id <> 78 or id <> 143 or id <> 64 or id <> 170 or id"

 

no caso troquei a "vírgula" por "id <>"

 

onde o último não nos interessa que vamos remove-lo

 

ids = left(ids,len(ids)-5)

 

agora vamos concatenar na sua sql

 

sua SQL antiga

SQL = "SELECT * from matricula where id <> " & arrayIdAluno(0) & " and idperiodo = " & request.queryString("id_periodo") & " and educacaoid = " & request.queryString("id_educacao") & " order by aluno"
sua nova SQL
SQL = "SELECT * from matricula where " & ids & " and idperiodo = " & request.queryString("id_periodo") & " and educacaoid = " & request.queryString("id_educacao") & " order by aluno"
reparou a troca que fiz deixei em negrito?
desse jeito os ids variáveis não rão aparecer..
qualquer dúvida é só postar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro gustavo,

 

 

consegui resolver com a sua ajuda, mas não pode ser "or" tem que ser "and". Ai deu certo.

 

Veja o código:

 

sqlcount2 = "SELECT id_aluno from turmas_alunos where id_turma = " & request.queryString("id")
set rscount2 = conn_s.execute(sqlcount2)
while not rscount2.eof
id_aluno = "id <> " & rscount2("id_aluno") & ""
id_prepara = "" & id_aluno & " and "
id_concatenado = id_concatenado & "" & id_prepara & ""
rscount2.movenext
wend
set rscount2 = nothing
end if


id_final = left(id_concatenado,len(id_concatenado)-4)


SQL = "SELECT * from aspx_matricula where " & id_final & " and idperiodo = " & request.queryString("id_periodo") & " and educacaoid = " & request.queryString("id_educacao") & " order by aluno"

 

Obrigado pela ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

para não excluir os id´s, para por exemplo precisar deles futuramente, apenas insira uma flag no seu bd para os antigos alunos estarem finalizados ou inativos, é assim que deixo os alunos antigos. Pois este aluno pode futuramente retornar.

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.