我有一个表 如下
零件号 域 方向 数量 位置号 期末时间
PART_NO CONTRACT DIRECTION quantity upper( LOCATION_NO )
0992-00 02 + 5 SM106233 2011/11/25 8:46
0992-00 02 - 3 SM106233 2011/11/22 8:49
TU-1900 01 + 1 ZW110200 2011/11/24 8:52
TU-1900 03 + 1 ZW110200 2011/11/25 8:52
21601-00 02 + 4 SM107223 2011/11/25 8:53
G050001 02 + 1 SM101111 2011/11/22 8:53
G050001 02 - 2 SM101111 2011/11/25 8:53
TU-1901 01 + 5 ZW110200 2011/11/23 8:54
现在我要写一个查询语句 期末时间设为2011/11/25 得到的结果如下  
PART_NO 01域库存数量 02域库存数量 03域库存数量   
0992-00 0 2 0
TU-1900 1 0 1按照要求的时间、各域按照不同方向、零件号、位置号的数量相减,其中02、03域只要sm%货位的数量,01域不考虑货位

解决方案 »

  1.   

    函数我写出来了 但是就是不知道怎么用到vba里,所以只能用这个办法
      

  2.   

    WITH t AS
    (SELECT '0992-00' a, '02' b, '+' c,5 d FROM dual
    UNION ALL
    SELECT '0992-00', '02', '-', 3 FROM dual
    )
    SELECT a,sum(decode(b,'01',decode(c,'+',d,-d))) 域01,
             sum(decode(b,'02',decode(c,'+',d,-d))) 域02,
             sum(decode(b,'03',decode(c,'+',d,-d))) 域03
    FROM t 
    GROUP BY a--result:
    0992-00 0 2 0
      

  3.   


    大侠,我那个零件号在表里有很多,不'0992-00'二是用part_no来概括吗