Search code examples
sqlsql-serverderived-table

Derived table in SQL Server


I have these two queries. I have no idea how to combine them together to make a derived table. I'm suppose to use the second query as the main query and use the first query in the FROM clause of the main query.

SELECT EmailAddress, Orders.OrderID, SUM(ItemPrice * Quantity) AS OrderTotal
FROM Customers  
 JOIN Orders ON Customers.CustomerID = Orders.CustomerID
 JOIN OrderItems ON Orders.OrderID = OrderItems.OrderID
GROUP BY EmailAddress, Orders.OrderID;

SELECT EmailAddress, MAX(ItemPrice) as LargestOrder 
FROM Customers  
 JOIN Orders ON Customers.CustomerID = Orders.CustomerID
 JOIN OrderItems ON Orders.OrderID = OrderItems.OrderID
GROUP BY EmailAddress

Solution

  • Are you just wanting the results to be in the same table? Just do this:

    SELECT FirstTable.*, SecondTable.LargestOrder
    FROM (
      SELECT EmailAddress, Orders.OrderID, SUM(ItemPrice * Quantity) AS OrderTotal
      FROM Customers  
      JOIN Orders ON Customers.CustomerID = Orders.CustomerID
      JOIN OrderItems ON Orders.OrderID = OrderItems.OrderID
      GROUP BY EmailAddress, Orders.OrderID) as FirstTable
    JOIN (
      SELECT EmailAddress, MAX(ItemPrice) as LargestOrder 
      FROM Customers  
      JOIN Orders ON Customers.CustomerID = Orders.CustomerID
      JOIN OrderItems ON Orders.OrderID = OrderItems.OrderID
      GROUP BY EmailAddress) as OtherTable ON FirstTable.EmailAddress = OtherTable.EmailAddress