Ir para conteúdo

POWERED BY:

Arquivado

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

rd111072

Select com if

Recommended Posts

Bom dia, moçada

 

é o seguinte:

 

tenho um página que lista um titular e seus dependentes através desse select:

 

<%
SQL1= "Select * from dependentes WHERE id_titular = '" & matricula & "'"
set RS1 = conection.Execute(SQL1)
%>

Daí ele lista todos os dependentes. Só que não quero que liste os dependentes que foram cancelados (acusados por um valor data, no campo dt_cancelamento.

Tentei fazer como se segue:

 

<b>Dependentes:</b><br />
<%IF NOT RS1.EOF THEN
dt_cancelamento = TRIM(RS1("dt_cancelamento"))

IF ISNULL(dt_cancelamento) OR ISEMPTY(dt_cancelamento) THEN%>
<table width="300">
<tr>
<%
Do While not RS1.Eof
%>
<td><input name="dependente" type="checkbox" value="<%=RS1("nm_dependente")%>"></td>
<td><%=RS1("nm_dependente")%></td>
</tr>

<%
RS1.MoveNext
Loop



RS1.close
set RS1 = nothing



%>

<%

END IF
END IF
%>

Mas ele continua listando TODOS, mesmo os que já foram cancelados.

 

Como faço?

Compartilhar este post


Link para o post
Compartilhar em outros sites
If Not isDate(dt_cancelamento) Then

Compartilhar este post


Link para o post
Compartilhar em outros sites

hargon,

 

continua exibindo todos. Acho que o problema é que o IF não está diferenciando cancelado de ativo.

 

AH! Antes do select dos dependentes tem um do titular também, assim:

 

matricula = Request("matricula")

SQL= "Select * from login_assoc WHERE matricula = '" & matricula & "'"
set RS = Conn.Execute(SQL)

que é exibido assim:

<b>Titular:</b><br />
<input name="titular" type="checkbox" value="<%=RS("nome")%>">   <%=RS("nome")%><br />

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que quero é que se dt_cancelamento for diferente de NULL, não apareça o dependente.

 

Mas isso até já resolvi.

 

O Problema é tratar de modo diferente os até 10 dependentes que cada titular pode ter. Por exemplo: fulano tem 10 dependentes. 5 ativos e 5 cancelados.

Eu teria de pegar o valor do campo id_dependente (numerico) e a partir dele diferenciar a situação (dt_cancelamento) de cada um.

 

Estou tentando assim:

 

<%

SQL1= "Select * from dependentes WHERE id_titular = '" & matricula & "' AND id_dependente = '2'"
set RS1 = conection.Execute(SQL1)
%>

 

mas aí eu teria de criar uma instrução SQL diferente de 1 até 10...

 

tem de haver um jeito meno POG!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Será que não tem como eu fazer o filtro no Select ao invés de no IF.

 

Tipo isso:

 

SQL1= "Select * from dependentes WHERE id_titular = '" & matricula & "' AND dt_cancelamento = ''"

set RS1 = conection.Execute(SQL1)

 

tentei isso, mas aí não aparece nada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

deu erro pq você não finalizou com aspas o sql, mais se quer diferente de vazio, aqui!

SQL1= "Select * from dependentes WHERE dt_cancelamento <> '' And id_titular = '" & matricula & "' "
set RS1 = conection.Execute(SQL1)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz assim:

SQL1= "Select * from dependentes WHERE dt_cancelamento = '' And id_titular = '" & matricula & "' "
set RS1 = conection.Execute(SQL1)
E assim:

<table width="300">
<tr>
<%
Do While not RS1.Eof
%>
<td><input name="dependente" type="checkbox" value="<%=RS1("nm_dependente")%>"></td>
<td><%=RS1("nm_dependente")%></td>
</tr>

<%
RS1.MoveNext
Loop



RS1.close
set RS1 = nothing



%>

Agora não está exibindo nada...

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.