2016-02-25 3 views
0

Привет позволяет сказать, что у меня есть следующие буксирные таблицыПолучение общее количество заказов с помощью SQL-запроса

первая таблица является Orders, которые состоят из следующих колонок

Order_ID OrderDate 
1   2016-01-20 
2   2016-01-21 

и вторая таблица является OrderDetails, которые состоят из следующих колонны

Order_ID ProductID UnitPrice Quantity 
1   1  5.00  1 
1   3  20.00  3 
2   2  10.00  2 

Как я могу получить следующие из положить

Order_ID OrderDate OrderTotalamount 
1  2016-01-20 65.00 
2  2016-01-21 20.00 

ответ

2

Не могли бы вы попробовать что-то подобное?

SELECT ORD.Order_ID, ORD.OrderDate, SUM(ORDD.UnitPrice * ORDD.Quanity) AS OrderTotalAmount 

FROM Orders ORD 

INNER JOIN OrderDetails ORDD 
ON ORDD.Order_ID = ORD.Order_ID 

GROUP BY ORD.Order_ID, ORD.OrderDate 
2

Вы можете попробовать это

SELECT a.Order_ID, a.OrderDate, SUM(Quantity*UnitPrice) as OrderTotalamout 
    FROM Orders a JOIN OrderDetains ON (a.Order_ID = OrderDetails.Order_ID) 
GROUP BY 1, 2; 

Я надеюсь, что это работает для вас.

+0

Слишком быстро! Для моего собственного наставления @fmgonzalez, что есть 1,2 в конце заявления? Я предполагаю, что это указывает группу на 1-й и 2-й позиции для выбора? –

+0

Я предпочитаю использовать имя столбца, поскольку вы, вероятно, измените порядок своих столбцов в предложении select в будущем. – sqluser

+0

Да, вы догадались. Я привык к этому. Извините, если он выглядит неясным. – fmgonzalez

1

ВЫ МОЖЕТЕ ИСПОЛЬЗОВАТЬ

SELECT TABLE1.Order_ID, TABLE1.OrderDate, SUM(TABLE2.Quantity*TABLE2.UnitPrice) as TotalPrice 
    FROM TABLE1 JOIN TABLE2 WHERE(TABLE1.Order_ID = TABLE2.Order_ID); 
Смежные вопросы