So kombinieren Sie die Ausgabe zweier Abfragen in MySQL, wenn sie nicht kompatible Bedingungen aufweisen

So kombinieren Sie die Ausgabe zweier Abfragen in MySQL, wenn sie nicht kompatible Bedingungen aufweisen

Ich brauche Hilfe beim Zusammenfügen der Ergebnisse der beiden folgenden Abfragen. Sie haben zwei inkompatible Bedingungen, daher fällt es mir schwer, sie in einer Abfrage zu kombinieren.

Gesamtumsatz seit Jahresbeginn

Wie kombiniere ich die Ausgabe beider Abfragen?

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

Und

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 

Antwort1

Sie könnten versuchen, beide Abfragen in der Select-Klausel einer dritten Abfrage zu verwenden, bei der die Tabelle, aus der Sie auswählen, DUAL ist. Dadurch kann eine Zeile mit den Ergebnissen beider Abfragen zurückgegeben werden.

Beispiel:

Abfrage:

WÄHLEN
(WÄHLEN
Summe(Datum/Diff(Rückgabedatum, Fälligkeitsdatum)*(Produkte.Mietgebühr*0,2))
VON Produkten INNER JOIN Bestelldetails
EIN Produkte.Produkt-ID = Bestelldetails.Produkt-ID
WHERE Rückgabedatum > Fälligkeitsdatum) AS 'Verspätungsgebühren YTD'
,(WÄHLEN
Summe(Produkte.Mietgebühr*Bestelldetails.Menge)
VON Produkten INNER JOIN Bestelldetails
EIN Produkte.Produkt-ID = Bestelldetails.Produkt-ID
WO Rückgabedatum > Fälligkeitsdatum ODER Fälligkeitsdatum = Rückgabedatum) als „Gesamtumsatz YTD“

VON DUAL;

Ergebnis:

+---------------+---------------------+
| Verzugsgebühren seit Jahresbeginn | Gesamtumsatz seit Jahresbeginn |
+---------------+---------------------+
| 3 | 4 |
+---------------+---------------------+

verwandte Informationen