Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/02/2018, 17:22
mblascog
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 3 meses
Puntos: 4
3 select mysql en uno

Buenas,
Estoy realizando un listado de una sola tabla y va muy lento, porqué hago tres selects a la base de datos para obtener la información y listarla en una tabla.

Imaginemos una tabla con los siguientes campos:
- pedido - pieza - cantidad - precio - facturado
1 - 10a - 5 - 3 -01/01/2018
1 - 10b - 3 - 8 -02/01/2018
1 - 10c - 9 - 5 -03/01/2018
1 - 10d - 2 - 6 -
1 - 10e - 1 - 25 -

Y el listado, sería algo así:
PEDIDO: 1; FACTURADO:84; PENDIENTE DE FACTURAR: 37; TOTAL FACTURA: 121
10a - 5 x 3 = 15
10b - 3 x 8 = 24
10c - 9 x 5 = 45
10d - 2 x 6 = 12
10e - 1 x25 = 25

Para obtener el importe facturado ejecuto el siguiente select:
SELECT SUM(cantidad x precio) AS facturado WHERE facturado <> ""

Para obtener el importe pendiente de facturar, sería el siguiente select:
SELECT SUM(cantidad x precio) AS sinfacturar WHERE facturado = ""

El total de la factura es la suma de facturado + sinfacturar

Y finalmente ejecuto un tercer select, para listar la información:
SELECT pedido, cantidad, precio, (cantidad*precio) WHERE facturado <> ""

Mi pregunta es, puedo obtener en un sólo select la información que ahora estoy obteniendo con los tres?

Muchas gracias
__________________
Qué fácil cuando lo sabes y qué difícil cuando no