Мне нужна помощь в сложении вывода двух следующих запросов. У них два несовместимых условия, поэтому я пытаюсь объединить их в одном запросе.
Общий доход с начала года по сегодняшний день
Как объединить результаты обоих запросов?
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
Вы можете попробовать использовать оба запроса в предложении select третьего запроса, где таблица, из которой вы выбираете, является DUAL. Это позволяет вернуть одну строку с результатами из обоих запросов.
Пример:
Запрос:
ВЫБИРАТЬ (ВЫБИРАТЬ сумма(дата_даты_выплаты(дата_возврата, дата_оплаты)*(товары.арендная_плата*0.2)) FROM продукты INNER JOIN заказдетали ON products.productID = orderdetails.productID ГДЕ returndate > duedate) КАК 'Плата за просрочку платежа с начала года' ,(ВЫБИРАТЬ сумма(продукты.АренднаяСтоимость*деталиЗаказа.количество) FROM продукты INNER JOIN заказдетали ON products.productID = orderdetails.productID ГДЕ returndate > duedate ИЛИ duedate = returndate) КАК «Общий доход с начала года»
ОТ ДВОЙНОГО;
Результат:
+--------------+-------------------+ | Штрафы за просрочку платежа с начала года | Общий доход с начала года | +--------------+-------------------+ | 3 | 4 | +--------------+-------------------+