Ayuda en armado de cadena en consulta de selección.

Qué tal estimado amigo. Espero me puedas resolver esta incógnita. Te comento, tengo una tabla "Socios" a la que le agregué un campo que se llama Estado (Suspendido, Fallecido, otros) que lo uso para los que se dan de baja. Ahora bien. Quiero seleccionar los que fueron dados de baja (sin importar el motivo) con lo cual quiero que la consulta me traiga todos aquellos cuyo campo Estado <> "".
Armé la siguiente cadena y no me trae nada. En que me estoy equivocando. MUCHAS GRACIAS!!!
strSociosBaja = "SELECT SOCIOS.NumSocio,Voluntarios.ApeVol,Voluntarios.NomVol,Voluntarios.DomicilioParticular,Voluntarios.TelefonoParticular,SOCIOS.Estado,SOCIOS.TipoContribucion FROM VOLUNTARIOS,SOCIOS WHERE VOLUNTARIOS.NUMSOCIO = SOCIOS.NUMSOCIO AND SOCIOS.ESTADO is not Null"
también la había armado así y no me traía nada tampoco:
SOCIOS.ESTADO <> '" & "Null" & "'"
Me explicas el por qué y cómo debo armar la consulta. Gracias!!!! Saludos!!!

1 respuesta

Respuesta
1

Si el campo tiene o acepta nulos entonces socios.estado is not null

Si el campo es string y esta vacío o sea tiene una cadena de longitud cero, entonces socios. Estado <> ''

Amigo. Muchas gracias por responder!! El campo es del tipo nchar(20). Utilizo Sql Server 2005 y le permito nulos a ese campo.

La consulta la modifiqué y no me arrojó ningún dato:

He aquí la consulta:

strSociosBaja = "SELECT SOCIOS.NumSocio,Voluntarios.ApeVol,Voluntarios.NomVol,Voluntarios.DomicilioParticular,Voluntarios.TelefonoParticular,SOCIOS.Estado,SOCIOS.TipoContribucion FROM VOLUNTARIOS,SOCIOS WHERE VOLUNTARIOS.NUMSOCIO = SOCIOS.NUMSOCIO AND SOCIOS.ESTADO is not null"

Bueno amigo. Muchas gracias nuevamente!!

OK

El problema es el siguiente: los campos Char o NChar en SQL son rellenados con espacios en blanco, por eso la consulta no te resulta pues el campo esta relleno con 20 espacios en blanco.

podrías probar con algo como : ... AND TRIM(SOCIOS.ESTADO) = '' "

Estimado amigo. Le agregué AND ltrim(rtrim(SOCIOS.ESTADO) <> "" y me dice comilla no cerrada después de la cadena de caracteres ' '. Si puedes chequearlo te agradezco!!! Saludos!!!

"SELECT SOCIOS.NumSocio,Voluntarios.ApeVol,Voluntarios.NomVol,Voluntarios.DomicilioParticular,Voluntarios.TelefonoParticular,SOCIOS.Estado,SOCIOS.TipoContribución FROM VOLUNTARIOS,SOCIOS WHERE VOLUNTARIOS.NUMSOCIO = SOCIOS.NUMSOCIO AND ltrim(rtrim(SOCIOS.ESTADO) <> "" "

Le puse distinto a vacío ( <> "" ) ya que si no es vacío entonces quiere decir que fue dado de baja.

Gracias nuevamente!! Saludos.

Recuerda que con comillas sencillas dos (2) dentro de la comilla doble que cierra la cadena de la sentencia SQL

Tu colocaste comillas dobles son comillas sencillas y después si la comilla doble que cierra todo el string

GRACIAS POR RESPONDER AMIGO. ASÍ SÍ ANDA LA CONSULTA.


eVol,Voluntarios.NomVol,Voluntarios.DomicilioParticular,Voluntarios.TelefonoParticular,SOCIOS.Estado,SOCIOS.TipoContribucion FROM VOLUNTARIOS,SOCIOS WHERE VOLUNTARIOS.NUMSOCIO = SOCIOS.NUMSOCIO AND (ltrim(rtrim(SOCIOS.ESTADO))) <> '" & "NULL" & "'"


SALUDOS.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas