Ver Mensaje Individual
  #4 (permalink)  
Antiguo 16/09/2009, 05:23
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: caracteres no validos en consultas sql

En tu ejemplo:
Código sql:
Ver original
  1. SELECT * FROM claves WHERE ncomercial = '"& empresa1 &"'

Si el contenido de empresa1 es "juan & pepe", el resultado final sería:

Código sql:
Ver original
  1. SELECT * FROM claves WHERE ncomercial = 'juan & pepe';

Con lo que lo que estás buscando es una empresa que se llame "juan & pepe". Si lo que quieres es que te devuelva es aquellos cuyos nombres de empresa contengan "juan" y "pepe", debes emplear expresiones regulares como LIKE, y separar ambos componentes (en este momento componen un sólo objeto):
Código sql:
Ver original
  1. SELECT *
  2. FROM claves
  3. WHERE
  4.           ncomercial LIKE '%juan%' AND ncomercial LIKE  '%pepe%';
Si quieres que busque uno u otro, hay que cambiar AND por OR:
Código sql:
Ver original
  1. SELECT *
  2. FROM claves
  3. WHERE
  4.           ncomercial LIKE '%juan%' OR ncomercial LIKE  '%pepe%';

Uno de tus problemas es que, igual que en cualquier lenguaje de programación, cuando tienes que comparar dos valores con una misma variable, debes comparar cada uno con ella, no ponerlos en bloque.
En SQL, existe una forma de comparar un campo con un conjunto de valores listados, pero no es aplicable a este modelo, porque no opera con LIKE. Se trata de IN ANY(subconsulta).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)