日期:2014-05-18  浏览次数:20493 次

一个奇怪的问题,请高人指点
我设计一个数据库
品名         数量         出入标志
铅笔         1000         进
铅笔         100           出
钢笔         100           进
钢笔         2               出
笔记本     2               进
钢笔         1               出

然后用sql语句查询每个商品进的数量-出的数量
SELECT   t.品名,((select   sum(数量)   from   dbo.list   t1   where   出入标志= '进 '   and   t1.品名=t.品名)-(select   sum(数量)
FROM   dbo.list   t1
WHERE   出入标志= '出 '   and   t1.品名=t.品名)         FROM   dbo.list   t           GROUP   BY   t.品名
运算结果是
铅笔     900
钢笔     97
笔记本    
这里为什么笔记本的数量为空?该怎么操作?请高人指点!

------解决方案--------------------
SELECT
t.品名,
isnull((select sum(数量) from dbo.list where 出入标志= '进 ' and 品名=t.品名),0)-
isnull((select sum(数量) from dbo.list where 出入标志= '出 ' and 品名=t.品名),0)
FROM
dbo.list t
GROUP BY
t.品名