2015-08-14 2 views
0

У меня есть две таблицы, одна с WeekNr и OrderNum, одна с OrderNum, статьи и предлагаемоевыберите сумму Сумма по которой

стол один

WeekNr OrderNum 
35  10001     
35  10003 
35  10008 
36  10006 
36  10005 
37  10004 
38  10007 
39  10002 

таблица 2

OrderNum Article Ammount 
10001  A   5 
10001  B   2 
10002  A   2 
10003  A   1 
10003  B   2 
10004  A   10 
10005  B   1 
10007  B   3 

Как Я получаю такой же результат, как

Article Total WeekNr35-36, Total WeekNr 37-38, Total WeekNr 39-40 
    A   8     10     2 
    B   5     3     0 
+0

ПРИСОЕДИНИТЕСЬ к двум таблицам, сделайте GROUP BY и SUM (случайная неделя ...) – jarlh

ответ

0

Вы можете использовать приведенный ниже запрос

select b.article, 
     sum(case when a.weeknr in (35,36) then b.amount end) as "Total WeekNr35-36", 
     sum(case when a.weeknr in (37,38) then b.amount end) as "Total WeekNr37-38", 
     sum(case when a.weeknr in (39,40) then b.amount end) as "Total WeekNr39-40" 
     from table_one a inner join table_two b 
      on a.ordernum=b.ordernum 
     group by b.article 

Здесь SQLFIDDLE LINK, чтобы проверить ур ответ

0

Определить таблицу периода, чтобы сделать его легче группировать данные и для простоты в случае, если вам необходимо продлить сроки позже, или если вам нужно создать пользовательские заголовки. Мое предложение:

Period, PeriodText, Week 
1, 'Weeks 24 and 25', 24 
1, 'Weeks 24 and 25', 25 

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

SELECT * 
FROM (
    SELECT O.Article, P.PeriodText, SUM(O.Ammount) AS Ammount 
     FROM Orders O 
     INNER JOIN Weeks W on O.Week = W.Week 
     INNER JOIN Periods P ON P.Week = O.Week 
     GROUP BY O.Article, P.PeriodText 
) AS Source 
PIVOT 
(
    SUM(Ammount) 
    FOR [Article] IN (
     ['Weeks 24 and 25','Weeks 26 and 27'] 
    ) 
) AS PivotTable 

Кроме того, я хотел бы предложить свои объединения двух таблиц, и положив недели в таблицу заказов. Кроме того, вы можете вставить дату заказа, в которой вы используете функцию недели.

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