Добавить всего в группу - PullRequest
       17

Добавить всего в группу

1 голос
/ 24 декабря 2009

У меня есть таблица деталей заказа.

Что я хочу сделать, это создать 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

Спасибо.

Ответы [ 2 ]

4 голосов
/ 24 декабря 2009

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

  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 голос
/ 24 декабря 2009

Я не уверен, что делать все это в одном 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

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

...