2009-12-24 3 views
1

У меня есть таблица заказов.Добавить общее количество в группу

То, что я хочу сделать, это создать 1 запрос, чтобы показать

OrderNumber | SKU | QTY | Price | Line Total | 
1   SKU1 1 10.00  10.00 
1   ---- 0  0.00  10.00 
2   SKU1 2 10.00  20.00 
2   SKU2 3  1.50   4.50 
2   ---- 0  0.00  24.50 

Я имею в виду, мне нужно добавить еще одну строку для каждого порядка с общей суммы для экспорта в текстовый файл.

У меня есть SQL Server 2005

Спасибо.

ответ

4

Дополнительный столбец легко, просто создать еще один выходной столбец в SQL, который определяется как произведение двух exsting атрибутов

Select OrderNumber, SKU, QTY, Price, Qty * Price as LineTotal 
    From Table ... 

Вторая часть, добавив субтотальную строку, можно сделать с ключевое слово Rollup или путем объединения с агрегированным запросом

Select OrderNumber, SKU, QTY, Price, 
     Qty * Price as LineTotal 
    From Table 
    Union 
    Select OrderNumber, null SKU, null Qty, null Price, 
     Sum(Qty * Price) as LineTotal 
    From Table 
    Group By OrderNumber 
    Order By OrderNumber, Case When SKU Is Null then 1 Else 0 End 
1

Я не уверен, если это все, что в одном SQL является хорошей идеей, но вы можете попробовать с профсоюзом:

SELECT * 
FROM (
    SELECT ordernumber, sku, qty, price, qty*price line_total 
    FROM order_details 
    UNION 
    SELECT ordernumber, '---' sku, 0 qty, 0 price, SUM(qty*price) 
    FROM order_details 
    GROUP BY ordernumber 
) 
ORDER BY ordernumber, sku 

Не пробовал это, хотя.

Смежные вопросы