Как мне заставить эту команду SQL печатать с СУММОЙ, указанной в порядке возрастания?

#sql #oracle-apex

#sql #oracle-apex

Вопрос:

 SELECT Order_Date, Sum(Number_Ordered) AS TotalPartsOrderdforDay
FROM Orders, Order_Line
WHERE Orders.Order_Number=Order_Line.Order_Number
GROUP BY Order_Date;
  

Ответ №1:

Научитесь использовать правильный, явный, стандартный join синтаксис!

 SELECT o.Order_Date, Sum(Number_Ordered) AS TotalPartsOrderdforDay
FROM Orders o JOIN
     Order_Line ol
     ON o.Order_Number = ol.Order_Number
GROUP BY o.Order_Date
ORDER BY TotalPartsOrderdforDay;
  

Примечания:

  • Псевдонимы таблиц облегчают запись и чтение запроса.
  • Вы можете использовать псевдоним столбца в ORDER BY .
  • Рекомендуется уточнять все ссылки на столбцы в запросе, особенно если ссылаются более чем на одну таблицу.

Ответ №2:

Вы можете добавить order by предложение:

 SELECT Order_Date, Sum(Number_Ordered) AS TotalPartsOrderdforDay
FROM Orders, Order_Line
WHERE Orders.Order_Number=Order_Line.Order_Number
GROUP BY Order_Date
ORDER BY 2 ASC;
  

Примечание: неявные соединения (имеющие более одного термина в from предложении) — устаревшая практика, и вам, вероятно, лучше использовать явное join :

 SELECT   Order_Date, Sum(Number_Ordered) AS TotalPartsOrderdforDay
FROM     Orders
JOIN     Order_Line ON Orders.Order_Number = Order_Line.Order_Number
GROUP BY Order_Date
ORDER BY 2 ASC;