Cómo combinar la salida de dos consultas en MYSQL cuando tienen condiciones no compatibles

Cómo combinar la salida de dos consultas en MYSQL cuando tienen condiciones no compatibles

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 |
+---------------+-------------------+

información relacionada