ISNULL使用指定的替换值替换 NULL

解决方案 »

  1.   

    select 品种,进货量 as 库存量 from
    (
    select 品种,进货量 from 进货表
    union all 
    select 品种,-销售量 from 销售表
    ) tmp
      

  2.   

    我想这样做或许可行,建立一个视图:该视图由两部分组成,一部分是源于进货的,另一部分是源于销售的(销售的数据为负值),库存上的数据直接在上面进行就可以了。
    下面是一个测试:
    一、saletest1表结构如下:
    CREATE TABLE [saletest1] (
    [a1] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
    [a2] [float] NULL ,
    [a3] [int] NULL 
    ) ON [PRIMARY]
    GO
    二、saletest2的表结构与上述表结构一样
    下面是saletest1表的内容,与表saletest1表的内容一样。
    adfa       23.399999999999999 2
    sfgsdfg    45.600000000000001 3
    etyety     56.0 4三、这是在两表上建立的视图(进货为正,销售为负)
    create view testsale as select a1,a2,a3 from saletest1 
    union select a1,-a2,-a3 from saletest2
    这是从视图中检索数据的命令:
    select a1,sum(a2),sum(a3) from testsale
    group by a1
    下面是上述视图中产生的结果,所有的商品均已销售完毕,零库存:
    adfa       0.0 0
    etyety     0.0 0
    sfgsdfg    0.0 0
      

  3.   

    select 品种,sum(进货量) as 库存量 from
    (
    select 品种,进货量 from 进货表
    union all 
    select 品种,-销售量 from 销售表
    ) tmp
    group by 品种