2015-07-03 27 views
0

我有一个这样的数据库:如何按星期总结数据组但从头开始总结?

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 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   - 

对不起我在这里新手写一个很好的问题。这里是图像:

enter image description here

enter image description here

你能帮帮我吗?

由于之前:)

+0

这不是database.Its表 –

回答

0

希望这个作品:

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 
0

尝试此查询

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