Как суммировать данные группы по неделям, но суммировать с начала?

У меня есть база данных, как это:

Entry_No    Week    Registering_Date    Bin_Code    Item_No  Quantity
=====================================================================
1           26      6/26/2015           BIN 1       A         10
2           26      6/26/2015           BIN 1       B         20
3           26      6/26/2015           BIN 1       C         30
4           26      6/26/2015           BIN 1       D         40 
5           27      6/29/2015           BIN 1       A         -3 
6           27      6/29/2015           BIN 2       A          3  
7           27      6/29/2015           BIN 1       A         -2
8           27      6/29/2015           BIN 3       A          2
9           28       7/5/2015           BIN 1       B        -15
10          28       7/5/2015           BIN 3       B         15
11          28       7/5/2015           BIN 1       C        -25
12          28       7/5/2015           BIN 2       C         25
13          28       7/5/2015           BIN 1       B         50

И я хотел бы суммировать группы по BIN_CODE и ITEM_NO по WEEK, но с начала данных. Я знаю, как суммировать группы по неделям, но он показывает только сводку за эту неделю (не с начала)

И результат, который я ожидаю, выглядит следующим образом:

WEEK  BIN CODE  ITEM NO  QUANTITY
====================================
26    BIN 1     A        10 
26    BIN 1     B        20 
26    BIN 1     C        30 
26    BIN 1     D        40 
26    BIN 2     A         -   
26    BIN 2     B         -   
26    BIN 2     C         -   
26    BIN 2     D         -   
26    BIN 3     A         -   
26    BIN 3     B         -   
26    BIN 3     C         -   
26    BIN 3     D         -   
27    BIN 1     A         5 
27    BIN 1     B        20 
27    BIN 1     C        30 
27    BIN 1     D        40 
27    BIN 2     A         3 
27    BIN 2     B         -   
27    BIN 2     C         -   
27    BIN 2     D         -   
27    BIN 3     A         2 
27    BIN 3     B         -   
27    BIN 3     C         -   
27    BIN 3     D         -   
28    BIN 1     A         5 
28    BIN 1     B         55 
28    BIN 1     C         5 
28    BIN 1     D         40 
28    BIN 2     A         3 
28    BIN 2     B         -   
28    BIN 2     C         25 
28    BIN 2     D         -   
28    BIN 3     A         2 
28    BIN 3     B        15 
28    BIN 3     C         -   
28    BIN 3     D         -  

Извините, я новичок здесь, чтобы написать хороший вопрос.. Вот изображение:

Не могли бы вы мне помочь?

Спасибо, прежде чем:)

2 ответа

Решение

Надеюсь, что это работает:

SELECT 
    t.Week AS WEEK,
    t.Bin_Code AS BIN_CODE,
    t.Item_No AS ITEM_NO,
    SUM(CASE WHEN items.Item_No = t.Item_No THEN items.Quantity ELSE 0 END) AS QUANTITY
FROM your_table as t
CROSS JOIN (SELECT DISTINCT Item_No FROM your_table) AS items
GROUP BY 
    t.Week,
    t.Bin_Code
ORDER BY
    1,2,3

Попробуйте этот запрос

select Week,Registering_Date,Bin_Code,Item_No, case when asum>0 then asum else '-' end as QUANTITY
from(
select Week,Registering_Date,Bin_Code,Item_No,sum(case when Quantityfrom>0 then quentity else o end ) as asum
from tablename
group by Week,Bin_Code,Item_No)a
Другие вопросы по тегам