24/05/2015, 20:16
|
| | Fecha de Ingreso: septiembre-2014 Ubicación: COLOMBIA
Mensajes: 5
Antigüedad: 10 años, 3 meses Puntos: 0 | |
consulta SQL con clausula que incluye SUM() hola
soy nuevo en este foro
tengo un problema con una consulta SQL
soy algo novato y para mi proyecto final
estoy desarrollando una aplicación para la gestión y transporte de pedidos
y requiero ver el cierta información del pedido
os explicare rápido
un pedido está compuesto por la información del cliente y el código del pedido
también hay una tabla detalles de pedido en la que se guarda el código del pedido y el código del producto que va con el pedido
un pedido muchos detalles
los pedidos se empaquetan en una encomienda, la cual es transportada por una ruta, un camión y pasa por varias sucursales
cada encomienda tiene la información del vehículo, la ruta (la ruta tiene muchos detalles de ruta cada detalle de la ruta representa una sucursal por donde pasa) y el estado;
cada encomienda tiene detalles, cada detalle de encomienda representa un pedido que está asignado a esa encomienda
SELECT ped.Cod, mun.Nombre AS Destino, SUM(det.Peso_Kg_U * det.Unidades) AS Peso_Kg, est.Descripcion AS Estado
FROM pedido ped
INNER JOIN control_ped con ON con.Cod_Cod_Ped = ped.Cod
INNER JOIN estado_ped est ON est.Cod = con.Estado_Cod_Est
INNER JOIN detalle_ped det ON det.Pedido_Cod_Pedido = ped.Cod
INNER JOIN sucursal suc ON suc.Cod = ped.Destino_Cod_Suc
INNER JOIN ShR shr ON shr.Estacion_Cod_Suc = suc.Cod
INNER JOIN municipio mun ON mun.Cod = suc.Ciudad
WHERE est.Descripcion LIKE 'Cancelado' AND shr.Ruta_Cod_Rut='$codRut' AND SUM(det.Peso_Kg_U * det.Unidades) <= '$capDisp' GROUP BY ped.Cod
tengo que ver esta información para poder asignar los pedidos al la encomienda que los va a ser transportada,
esto teniendo en cuenta que el camión tiene una capacidad máxima, la cual se irá copando a medida que se agreguen nuevos pedidos;
la variable $capDisp es la capacidad disponible en el camión
necesito ver en una lista desplegable los pedidos para poder seleccionarlos y asignarlos
pero no puedo asignar pedidos que excedan la capacidad, por eso no quiero verlos mientras excedan la capacidad
el peso total de un pedido se calcula multiplicando el peso en Kg de cada unidad que pertenece al pedido (Productos) por el total de unidades y posteriormente sumando todos los resultados
"SUM(det.Peso_Kg_U * det.Unidades)"
necesito ver solo los pedidos que la suma de su peso total no exceda la capacidad disponible en el camión
pero la sentencia "WHERE SUM(det.Peso_Kg_U * det.Unidades) <= '$capDisp' " me arroja un error de sintaxis
#1111 - Invalid use of group function
y no se me ocurre otra opción |