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