Como combinar a saída de duas querys no MYSQL quando elas têm condições não compatíveis

4

Estou procurando alguma ajuda para adicionar a saída das duas consultas a seguir. Eles têm duas condições incompatíveis, então estou lutando para combiná-las na única consulta.

Ano da receita total até a data

Como combinar a saída de ambas as 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

e

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 
    
por NiallBC 16.04.2016 / 18:21

1 resposta

0

Você pode tentar usar as duas consultas na cláusula select de uma terceira consulta em que a tabela da qual você está selecionando é DUAL. Isso permite que uma linha seja retornada com os resultados de ambas as consultas.

Exemplo:

Consulta:

SELECT
(SELECT 
sum(datediff(returndate, dueDate)*(products.rentalfee*0.2)) 
FROM products INNER JOIN orderdetails
ON products.productID = orderdetails.productID
WHERE returndate > duedate) AS 'Late Fees YTD'
,(SELECT 
sum(products.RentalFee*orderdetails.quantity)
FROM products INNER JOIN orderdetails
ON products.productID = orderdetails.productID
WHERE returndate > duedate OR duedate = returndate) AS 'Total Revenue YTD'

DO DUAL;

Resultado:

+---------------+-------------------+
| Late Fees YTD | Total Revenue YTD |
+---------------+-------------------+
| 3             | 4                 |
+---------------+-------------------+
    
por 23.04.2016 / 05:16