Estoy buscando ayuda para sumar el resultado de las dos consultas siguientes. Tienen dos condiciones incompatibles, por lo que me cuesta combinarlas en una sola consulta.
Ingresos totales hasta la fecha
¿Cómo combinar el resultado de ambas consultas?
SELECT
sum(datediff(returndate, dueDate)*(products.rentalfee*0.2)) AS 'Late Fees YTD'
FROM products INNER JOIN orderdetails
ON products.productID = orderdetails.productID
WHERE returndate > duedate
Y
SELECT
sum(products.RentalFee*orderdetails.quantity)
AS 'Total Revenue YTD'
FROM products INNER JOIN orderdetails
ON products.productID = orderdetails.productID
WHERE returndate > duedate OR duedate = returndate
Respuesta1
Puede intentar utilizar ambas consultas en la cláusula de selección de una tercera consulta donde la tabla que está seleccionando sea DUAL. Esto permite devolver una fila con los resultados de ambas consultas.
Ejemplo:
Consulta:
SELECCIONAR (SELECCIONAR suma(datediff(fecha de regreso, fecha de vencimiento)*(productos.tarifa de alquiler*0.2)) DE productos INNER JOIN detalles del pedido ON productos.productID = detalles del pedido.productID DONDE fecha de devolución > fecha de vencimiento) COMO 'Cargos por pagos atrasados hasta la fecha' ,(SELECCIONAR suma(productos.Tarifadealquiler*detalles del pedido.cantidad) DE productos INNER JOIN detalles del pedido ON productos.productID = detalles del pedido.productID DONDE fecha de retorno > fecha de vencimiento O fecha de vencimiento = fecha de retorno) COMO 'Ingresos totales hasta la fecha'
DE DUAL;
Resultado:
+---------------+-------------------+ | Cargos por pagos atrasados hasta la fecha | Ingresos totales hasta la fecha | +---------------+-------------------+ | 3 | 4 | +---------------+-------------------+