Entonces no entiendo para que las fechas, pero bueno lo que ocupas es algo como esto:
Código SQL:
Ver originalCREATE TABLE #empleados(
id_empleado INT,
nombre VARCHAR(20),
id_sucursal INT
)
CREATE TABLE #sucursal(
id INT,
nombre VARCHAR(20)
)
CREATE TABLE #salario(
id_empleado INT,
salario INT
)
CREATE TABLE #descuento(
id_empleado INT,
fecha datetime
)
INSERT INTO #empleados VALUES (1,'Irvin', 1)
INSERT INTO #empleados VALUES (2,'juan',1)
INSERT INTO #empleados VALUES (3,'Adrian',1)
INSERT INTO #sucursal VALUES (1,'Multiplaza')
INSERT INTO #salario VALUES (1,251)
INSERT INTO #salario VALUES (2,251)
INSERT INTO #salario VALUES (3,265)
INSERT INTO #descuento VALUES (1,'06-11-2015')
INSERT INTO #descuento VALUES (1,'06-11-2015')
INSERT INTO #descuento VALUES (2,'08-11-2015')
SELECT * FROM(
SELECT t1.nombre,t3.salario,0 descuento, t1.id_empleado FROM #empleados AS t1
INNER JOIN #salario AS t3 ON (t1.id_empleado=t3.id_empleado)
INNER JOIN #sucursal AS t2 ON (t1.id_sucursal=t2.id)
WHERE t2.id=1 AND t1.id_empleado NOT IN(
SELECT descuentos.id_empleado FROM(
SELECT t1.nombre,t3.salario,COUNT(t4.id_empleado) descuentos, t1.id_empleado FROM #empleados AS t1
INNER JOIN #salario AS t3 ON (t1.id_empleado=t3.id_empleado)
INNER JOIN #sucursal AS t2 ON (t1.id_sucursal=t2.id)
LEFT JOIN #descuento AS t4 ON (t4.id_empleado=t1.id_empleado)
WHERE t2.id=1 AND t4.fecha BETWEEN '06-11-2015' AND '07-11-2015'
GROUP BY t1.nombre,t3.salario,t1.id_empleado
) AS descuentos
)
) AS no_descuento
UNION
SELECT * FROM(
SELECT t1.nombre,t3.salario,COUNT(t4.id_empleado) descuentos, t1.id_empleado FROM #empleados AS t1
INNER JOIN #salario AS t3 ON (t1.id_empleado=t3.id_empleado)
INNER JOIN #sucursal AS t2 ON (t1.id_sucursal=t2.id)
LEFT JOIN #descuento AS t4 ON (t4.id_empleado=t1.id_empleado)
WHERE t2.id=1 AND t4.fecha BETWEEN '06-11-2015' AND '07-11-2015'
GROUP BY t1.nombre,t3.salario,t1.id_empleado
) AS descuentos
Ojo la sentencia para las tablas temporales esta en Sql server, pero el query te puede servir para lo que necesitas, este es el resultado:
nombre salario descuento id_empleado
Adrian 265 0 3
Irvin 251 2 1
juan 251 0 2
saludos!
P.D: Para sacar lo que necesitas no queda de otra mas que usar union, no esta bien el query porque queda demasiado rebuscado, pero si es lo que ocupas.......otra cosa tus tablas estan mal normalizadas.....