So kombinieren Sie die Ausgabe von zwei Abfragen in MySQL, wenn sie nicht kompatible Bedingungen haben

364
NiallBC

Ich bin auf der Suche nach Unterstützung beim Addieren der Ausgabe der beiden folgenden Abfragen. Sie haben zwei inkompatible Bedingungen. Ich habe Mühe, sie in der einen Abfrage zusammenzufassen.

Gesamtumsatzjahr bis Datum

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  
4

1 Antwort auf die Frage

0
Brandon

Sie können 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 aus beiden Abfragen zurückgegeben werden.

Beispiel:

Abfrage:

WÄHLEN (WÄHLEN  Summe (Datum (zurückgegeben, Fälligkeitsdatum) * (products.rentalfee * 0,2))  FROM products INNER JOIN Bestelldetails ON products.productID = bestelldetails.productID WO zurückkehren> Duate) AS 'Late Fees YTD' ,(WÄHLEN  sum (products.RentalFee * bestelldetails.quantity) FROM products INNER JOIN Bestelldetails ON products.productID = bestelldetails.productID WO zurückkehren> Duate oder Duate = zurückkehren) AS 'Total Revenue YTD' 

VON DUAL;

Ergebnis:

+ --------------- + ------------------- + | Späte Gebühren YTD | Gesamtumsatz YTD | + --------------- + ------------------- + | 3 | 4 | + --------------- + ------------------- +