Tema: 2 sql
Ver Mensaje Individual
  #56 (permalink)  
Antiguo 05/05/2005, 01:30
Avatar de Jose_minglein2
Jose_minglein2
 
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 20 años, 3 meses
Puntos: 8
Ok, pensaba que querías todos los servicios y a partír de ahí seleccionar, para que te muestre sólo los del cliente: (te pongo de momento la larga)

SELECT Servicios.ServNombre, TipoServicio.TipoNombre, usuariosservicios.usservidus
FROM Servicios
INNER JOIN TipoServicio ON TipoServicio.TipoId = Servicios.ServIdTipo

inner JOIN UsuariosServicios ON Servicios.ServId = UsuariosServicios.UsServIdServ
inner JOIN Usuarios ON Usuarios.UsId = UsuariosServicios.UsServIdUs
inner JOIN Clientes ON Clientes.UsIdCli = Usuarios.UsIdCli
WHERE (Clientes.UsIdCli = 2 and usuarios.usid=3)

union

select servicios.servnombre, tiposervicio.tiponombre, null as UsServIdUs
from servicios
INNER JOIN TipoServicio ON TipoServicio.TipoId = Servicios.ServIdTipo
where servicios.servid not in
(select usuariosservicios.usservidserv from usuariosservicios inner JOIN Usuarios ON Usuarios.UsId = UsuariosServicios.UsServIdUs
inner JOIN Clientes ON Clientes.UsIdCli = Usuarios.UsIdCli WHERE clientes.usidcli=2)
ORDER BY ServNombre


con esto sacas todos los servicios relacionados con el cliente 2 y agrupados, y en null los del usuario los que no son del usuario 3 y con 3 los que sin sol de éste, dime que es así y te lo pongo en cortita