4

Я ищу некоторую помощь в суммировании результатов двух следующих запросов. У них есть два несовместимых условия, поэтому я пытаюсь объединить их в одном запросе.

Общий доход с начала года

Как совместить вывод обоих запросов?

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

А также

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 

1 ответ1

0

Вы можете попробовать использовать оба запроса в предложении select третьего запроса, в котором таблица, из которой вы выбираете, имеет значение DUAL. Это позволяет возвращать одну строку с результатами обоих запросов.

Пример:

Запрос:

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'

ОТ ДВОЙНОГО;

Результат:

+---------------+-------------------+
| Late Fees YTD | Total Revenue YTD |
+---------------+-------------------+
| 3             | 4                 |
+---------------+-------------------+

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .