2012-07-02 2 views
0

У меня есть следующая таблица:Sql группа слишком много условий

Order Product Price Quantity Description 
Order1 Product1 12  1  Text 
Order1 Product2 15  2  Text 
Order1 Product3 32  1  Text 
Order2 Product1 25  2  Text 
Order2 Product4 65  3  Text 

И мне нужно, чтобы показать детали для заказа 1 (продукт, цена, кол-во, описание), а также общую стоимость этого заказа. Есть ли простой способ сделать это?

ответ

3

С Order - ключевое слово SQL, вам нужно указать его в соответствии с вашей базой данных.

Например, для SQL Server:

select m.*, ms.TotalValue 
from MyTable m 
inner join (
    select [Order], sum(Price * Quantity) as TotalValue 
    from MyTable 
    group by [Order] 
) ms on m.[Order] = ms.[Order] 

SQL Fiddle Example

+0

Обновлен с помощью примера SQL Fiddle. – RedFilter

0

Предполагая, что общая стоимость = сумма (цена * количество), то:

select t.[Order], 
     t.Product, 
     t.Price, 
     t.Quantity, 
     t.Description, 
     aux.Total 
from tablename t 
inner join (
     select [Order], 
      SUM(Price * Quantity) as 'Total' 
     from tablename 
     group by [Order] 
) aux on t.[Order] = aux.[Order] 

Если вы хотите, общее для каждая строка, вы можете сделать это следующим образом:

select t.[Order], 
     t.Product, 
     t.Price, 
     t.Quantity, 
     t.Description, 
     t.Price * t.Quantity as 'Total' 
from tablename t 
Смежные вопросы