SQL - consulta SQL

 
Vista:

consulta SQL

Publicado por Aparicio (2 intervenciones) el 26/12/2010 19:34:10
Hola, creí haber solucionado este problema, pero cuando corro la consulta por segunda vez no me da los resultados, alguien aqui en el foro me dijo que usara % como comodin de like. Me dijeon que tenia que ser %cadena% pero esto es una consulta de parametro y quiero que la consulta me pregunte lo que yo quiera escribir, no una cadena en especifico, simplemente que yo escriba por ejemplo la primera letra del contacto o parte del nombre, por eso yo habia usado el "*" pero me dijeron que asi no era. La base de Datos esta en Access 2007. Por favor ayuda. Gracias.

SELECT Activos3.*
FROM Activos3
WHERE (((Activos3.Compañía) Like [Nombre de Compañía] & "*") OR ((Activos3.Contacto) Like [Nombre de Contacto] & "*") OR ((Activos3.Status) Like [Status ] & "*"));
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:consulta SQL

Publicado por Miguel (16 intervenciones) el 27/12/2010 08:46:50
Ya hay un foro de Access, este es de SQL y por eso te dicen que uses %.
Efectivamente para Access se usa el *.
A ver si te sirve así y si no pregunta en el otro foro.

SELECT Activos3.*
FROM Activos3
WHERE (((Activos3.Compañía) Like '[Nombre de Compañía]*') OR ((Activos3.Contacto) Like '[Nombre de Contacto]*') OR ((Activos3.Status) Like '[Status ]*'));

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:consulta SQL

Publicado por Ariel Bálsamo (9 intervenciones) el 07/01/2011 15:10:47
Hola. Creo que el problema no está en el *, sino en como está armada la consulta. De la manera en que está, cuando no completas algún parámetro, por ejemplo el Contacto, el filtro queda como:

Activos3.Contacto Like "*"

De esta manera, siempre que dejes alguno de los tres parámetros sin informar, obtendrás todos los registros (porque las tres condiciones están relacionadas con OR).
Para lograr lo que quieres utiliza:

SELECT ACTIVOS3.*
FROM ACTIVOS3
WHERE ([Nombre de Compañía] IS NOT NULL AND Activos3.Compañía LIKE [Nombre de Compañía] & "*") OR
([Nombre de Contacto] IS NOT NULL AND Activos3.Contacto LIKE [Nombre de Contacto] & "*") OR
([Estado] IS NOT NULL AND Activos3.Status LIKE [Estado] & "*");

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar