sql >> Database >  >> RDS >> Mysql

MySQL:meerdere kolommen retourneren uit een in-line subquery

Verplaats de inline SQL naar een inner join-query. Dus je zou zoiets hebben als...

SELECT  DATE_FORMAT(OrderDate,'%M %Y') AS OrderMonth, COUNT(OrderID) AS TotalOrders, SUM(OrderTotal) AS TotalAmount,  Z.OrderCustomerFK, Z.CustomerName, z.OrderTotal as CustomerTotal   
  FROM Orders     
  INNER JOIN (SELECT DATE_FORMAT(OrderDate,'%M %Y') as Mon, OrderCustomerFK, CustomerName, SUM(OrderTotal) as OrderTotal 
                FROM Orders 
               GROUP BY  DATE_FORMAT(OrderDate,'%M %Y'), OrderCustomerFK, CustomerName ORDER BY SUM(OrderTotal) DESC LIMIT 1) Z
          ON Z.Mon = DATE_FORMAT(OrderDate,'%M %Y')
    GROUP BY DATE_FORMAT(OrderDate,'%m%y'), Z.OrderCustomerFK, Z.CustomerName
    ORDER BY DATE_FORMAT(OrderDate,'%y%m') DESC


  1. IN-clausule gebruikt geen index

  2. Is het sleutelwoord 'as' vereist in Oracle om een ​​alias te definiëren?

  3. 10 Microsoft Access-sneltoetsen voor het navigatiedeelvenster

  4. rs.last() geeft ongeldige bewerking voor alleen doorsturen resultatenset:last