解决方案 »

  1.   

    select row_number over(order by t.品名) ID,t.品名,t.数量
    from (select t1.品名,sum(t1.入库量-isnull(t2.出库量,0)) 数量
    from 入库表 t1
    left join 出库表 t2 on t1.品名=t2.品名
    where convert(varchar(8),t1.入库日期,112) between 20141001 and 20141031
    group by t1.品名) t
      

  2.   


    CREATE TABLE #In 
    (
    ID INT,
    [品名] VARCHAR(50),
    [入库量] INT,
    [入库日期] DATE
    )CREATE TABLE #OUT
    (
    ID INT,
    [品名] VARCHAR(50),
    [出库量] INT,
    [出库日期] DATE
    )INSERT INTO #OUT
            ( ID, 品名, 出库量, 出库日期 )
    VALUES  ( 1, 'AA',80,'2014-10-12' ),(2, 'AA',50,'2014-10-30' ),( 3, 'AA',70,'2014-11-16' ),( 4, 'BB',50,'2014-11-20' )INSERT INTO #In
            ( ID, 品名, 入库量, 入库日期 )
    VALUES  ( 1, 'AA',100,'2014-10-2' ),(2, 'BB',50,'2014-10-15' ),( 3, 'AA',50,'2014-10-25' ),( 4, 'AA',100,'2014-11-5' )SELECT [品名],SUM(库存量) AS [库存量]
    FROM (
    SELECT [品名],
    [入库量] AS [库存量]
    FROM #In
    WHERE [入库日期] BETWEEN '2014-10-01' AND '2014-10-31'
    UNION ALL 
    SELECT [品名],
    -[出库量] AS [库存量]
    FROM #OUT
    WHERE [出库日期] BETWEEN '2014-10-01' AND '2014-10-31'
    ) T
    GROUP BY T.[品名]