Ver Mensaje Individual
  #13 (permalink)  
Antiguo 27/05/2004, 23:57
Avatar de sism82
sism82
 
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 20 años, 5 meses
Puntos: 1
casiopea, según veo esta consulta debe resolverte el problema

"SELECT * FROM tservicios WHERE CveServi NOT LIKE (SELECT tservicios.CveServi FROM tservicios, servempresa WHERE tservicios.CveServi = servempresa.CveServi AND servempresa.CveEmpre = ".$claveDeEmpresa.")";

lamentablemente si estas trabajando con una base de datos que no soporte consultas anidadas, no será posible, y tendrás que hacerlo en dos pasos... primero haces la consulta anidada (la que está entre parentesis), esa consulta anidada te devuelve los servicios que SI están disponibles para la clave de empresa, los guardas en un Array, para luego hacer una consulta enoooooorme donde vas a ir concatenando algo asi:

$consulta = "SELECT * FROM tservicios WHERE CveServi ";
$numClaves = count($claves);
foeach($claves as $in => $clave)
if($in != $numClaves)
$consulta .= "!= ".$clave." AND CveServi ";
else
$consulta .= "!= ".$clave."";

como ves es mas rollo, pero funciona... espero no haberme equivocado en alguna cosilla del código y disculpa la falta de tabulaciones y buenas costumbres de programación :p pero aqui no me funciona bien el teclado...

si te quedan dudas ando por aqui otro rato... un saludo