Foros del Web » Programando para Internet » ASP Clásico »

select con IN

Estas en el tema de select con IN en el foro de ASP Clásico en Foros del Web. hola gente alguien me da una mano con esto?? tengo una tabla "clientes" y en ella una columna "rubros" en "rubros" guardo datos de la ...
  #1 (permalink)  
Antiguo 16/01/2003, 13:10
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 22 años, 6 meses
Puntos: 1
select con IN

hola gente alguien me da una mano con esto??
tengo una tabla "clientes" y en ella una columna "rubros"
en "rubros" guardo datos de la siguiente manera
102,103,104,105,106,107
luego en una pagina tengo una variable.

numeritos = 107,108,109,110

como hago el select para que si coincide almenos 1.. en este caso 107 estube probando con

WHERE rubros IN ("&numeritos&")

pero esto me da un error

Syntax error converting the nvarchar value '355, 375' to a column of data type int.

gracias por su ayuda!
__________________
On error no hago nada porque deje de fumar...
  #2 (permalink)  
Antiguo 16/01/2003, 13:32
Avatar de urjose  
Fecha de Ingreso: diciembre-2001
Mensajes: 5.286
Antigüedad: 22 años, 5 meses
Puntos: 1
pues asi

WHERE rubros IN ("&numeritos&")

El problema es que tu debes estar poniendo algo asi

WHERE rubros IN ('"&numeritos&"')

Lo cual te genera el error
  #3 (permalink)  
Antiguo 16/01/2003, 13:45
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 22 años, 6 meses
Puntos: 1
nou nou.. estoy poniendo como decis

WHERE rubros IN ("&numeritos&")

gracias!
  #4 (permalink)  
Antiguo 16/01/2003, 13:50
Avatar de urjose  
Fecha de Ingreso: diciembre-2001
Mensajes: 5.286
Antigüedad: 22 años, 5 meses
Puntos: 1
Ahh es que esto debe ser así

numeritos = "107,108,109,110"
  #5 (permalink)  
Antiguo 16/01/2003, 14:08
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 22 años, 6 meses
Puntos: 1
si claro. ahi yo lo resumi un poquito
enrealidad lo hago asi

<%
numerito = rs("rubros")
%>

y luego el select con el bendito IN.... la verdad no entiendo siquiera porque me dice error al convertir de nvarchar a int si no estoy conviertiendo nada..

graciass
  #6 (permalink)  
Antiguo 22/01/2003, 00:00
Avatar de urjose  
Fecha de Ingreso: diciembre-2001
Mensajes: 5.286
Antigüedad: 22 años, 5 meses
Puntos: 1
Ya lo resolviste?

Que es lo que te genera

<%
numerito = rs("rubros")
Response.Write numerito
%>

Dime que tipo de campo es rubros

Como que andas medio confundido no entiendo por que le asiganas a numerito eso y luego quieres actualizar
  #7 (permalink)  
Antiguo 22/01/2003, 10:17
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 22 años, 6 meses
Puntos: 1
asi creo la variable numeritos

do while not (rs.bof or rs.eof)
numeritos = numeritos & "," & rs("IDrubro")
rs.movenext
loop

luego el select

WHERE rubros IN ("&numeritos&")


el tema es que rubros tiene los datos asi

101,102,103,104
osea no tiene un numero solo tiene muchos separados por coma
osea seria comparar 101,102,103,104 con 101,103,07
si almenos uno coincide que lo muestre. mm y si conicide dos veces no.. solo una.
se entiende o suy muy complicado?

gracias!!!
  #8 (permalink)  
Antiguo 22/01/2003, 12:09
Avatar de urjose  
Fecha de Ingreso: diciembre-2001
Mensajes: 5.286
Antigüedad: 22 años, 5 meses
Puntos: 1
Primer problema:

do while not (rs.bof or rs.eof)
numeritos = numeritos & "," & rs("IDrubro")
rs.movenext
loop


Si solo te regresa un registro te traería como resultado:

101,



Pon el codigo tal cual lo usas en tu pagina asp por que por lo que he visto te lo sacas de la manga aqui.

Pon el error tal cual como te lo genera la pagina.

Saludos
  #9 (permalink)  
Antiguo 22/01/2003, 13:31
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 22 años, 6 meses
Puntos: 1
asi talcual lo tengo

do while not (rsrubro.bof or rsrubro.eof)
rubrito = rubrito & "," & rsrubro("IDrubro")
rsrubro.movenext
loop
rubrito = Mid(rubrito,2)
' asi le saco la coma inicial

y el select es

"SELECT * FROM dbo.clientes, dbo.zonas WHERE clientes.fiestas LIKE '%" & idf & "%' AND clientes.zonas LIKE '%" & idb & "%' AND clientes.rubros IN ("&rubrito&") AND clientes.localidad = zonas.IDzona ORDER BY clientes.tipo, clientes.IDcliente ASC"

cabe aclarar que clientes.rubros da algo asi como 100,101,102,104,105,107,180

saludos
  #10 (permalink)  
Antiguo 22/01/2003, 21:27
Avatar de urjose  
Fecha de Ingreso: diciembre-2001
Mensajes: 5.286
Antigüedad: 22 años, 5 meses
Puntos: 1
Con esto le sacas la coma inicial?

rubrito = Mid(rubrito,2)

Pues yo que sepa esa ni siquiera es la sintaxis del MId

Entodo caso para sacar la coma inicial sería así

rubrito=Right(rubrito,len(rubrito)-1)

algo asi si te quitaria la primera comilla

Utiliza un Response.Write SQL
y un
Response.Write Rubrito.

Y pon lo que te genera
  #11 (permalink)  
Antiguo 23/01/2003, 09:12
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 22 años, 6 meses
Puntos: 1
pues si como te mostre saco la coma inicial
http://www.devguru.com/technologies/...ckref/mid.html

ahora tengo asi las cosas

en la tabla rubros: 101,102,103,104,105
en la variable: 102,105,108,109,300,670


gracias por tu paciencia jajaja
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:23.