SQL Server - Relacion de 4 tablas

 
Vista:
Imágen de perfil de Su

Relacion de 4 tablas

Publicado por Su (2 intervenciones) el 30/05/2016 04:16:08
Hola a todos,necesito relacionar varias tablas para calcular el total de la factura, con detalles de coste total de servicios y coste total de material, mis tablas son las siguientes

Equipo: idequipo(PK), cliente(FK)
Averia: idaveria(PK), idequipo(FK)
servicio_realizado: idservicio(PK,FK), idaveria(PK,FK), horas
servicio: idservicio, coste_hora
material_utillizado: idmaterial(PK,FK), idaveria(PK,FK), cantidad
material: idmaterial, precio

He conseguido mediante la siguiente consulta relacionar equipo, averia, servicio-realizado y servicio, aunque realizar la suma total de los servicios en una averia, me suma todos los servicios de todos los equipos averiados por cliente, y busco que por cada equipo averiado de un cliente la suma de los servicios y del material

1
2
3
4
5
6
7
SELECT DISTINC a.idaveria, a.fecha_ent, e.marca, e.modelo, a.descripcion, s.coste_hora, sr.horas, sum(s.coste_hora*sr.horas) as pvpservicios
 
FROM servicio_realizado sr
inner join averia a on a.idaveria=sr.idaveria
inner join equipo e on a.idequipo=e.idequipo
inner join servicio s on s.idservicio=sr.idservicio
WHERE e.cliente=2;

con esta consulta solo me sale un equipo en ese cliente (cuando hay dos) y me realiza la suma de los dos equipos.

Me podriais hechar una manilla con esto? Gracias.
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
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Relacion de 4 tablas

Publicado por Isaias (4558 intervenciones) el 30/05/2016 19:51:56
¿Que version-edicion de SQL Server?

Envianos el script de creacion de tus tablas y unos cuantos registros de cada una de ellas, si se puede, el print-screen del modelo.
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
Imágen de perfil de Su

Relacion de 4 tablas

Publicado por Su (2 intervenciones) el 01/06/2016 04:46:36
Hola Isaias, te envio en el zip el script de la tablas y captura del modelo, mi idea es obtener por cada equipo que tenga un cliente el total de la factura (material + servicios)

1
2
3
4
5
6
7
/*Consultas de precio total de servicio_realizado en una averia*/
select a.idaveria, a.fecha_ent, e.marca, e.modelo, a.descripcion, s.coste_hora, sr.horas , (coste_hora*horas) as total_servicios
from servicio_realizado sr
inner join averia a on a.idaveria=sr.idaveria
inner join equipo e on a.idequipo=e.idequipo
inner join servicio s on s.idservicio=sr.idservicio
where e.idequipo=3;

Gracias de antemano. Un saludo
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

Relacion de 4 tablas

Publicado por Lady Garay Gutierrez (5 intervenciones) el 20/06/2016 20:41:09
Pues puedes relacionarlas de la misma manera, pero fíjate que tengas todos los ID para que los puedas relacionar, es decir que te faltaría el id de material utilizado en servicio_realizado y el id de material en material_utilizado, tu consulta quedaría así:
1
2
3
4
5
6
7
8
9
SELECT DISTINC a.idaveria, a.fecha_ent, e.marca, e.modelo, a.descripcion, s.coste_hora, sr.horas, sum(s.coste_hora*sr.horas) as pvpservicios
 
FROM servicio_realizado sr
inner join averia a on a.idaveria=sr.idaveria
inner join equipo e on a.idequipo=e.idequipo
inner join servicio s on s.idservicio=sr.idservicio
inner join material_utilizado mu on mu.idMaterial_Utilizado = sr.id_material_utilizado
inner join material m on m.idMaterial = mu.idMaterial
WHERE e.cliente=2;
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