编程论坛's Archiver

oivio 发表于 2008-4-2 17:20

求助,如何写这个查询语句!

建立以下3个二维表(定义必要的完整性约束),并输入数据
表名:Table1
属性:商品代号dh   商品进货量sl   进货日期
元组:     A          100          2008-01-01
          B          120          2008-01-02
          C          200          2008-01-04
          D          180          2008-01-06
          E          80           2008-01-08
表名:Table2
属性:商品代号dh   出库数量sl   出货日期
   元组:     A          10        2008-01-02
    A          20        2008-01-03
              B          10        2008-01-03
              B          15        2008-01-04
              C           5        2008-01-05
              E           2        2008-01-09
表名:Table3
属性:商品代号dh   商品名称  
   元组:     A          香皂
    B          牙膏
              C          手套   
              D          帽子      
              E          牙刷      

用SQL语句写出下列查询: 查询每样商品各自的进货总量、总出库数量、进出货差量;


数据已经录入,下面是我写的
SELECT  X.商品代号dh,进货总量,总出库数量,进货总量-总出库数量 AS 进出货差量
FROM    (SELECT 商品代号dh,SUM(商品进货量sl)AS 进货总量   FROM TABLE1 GROUP BY 商品代号dh)AS X,
        (SELECT 商品代号dh,SUM(出库数量sl)AS 总出库数量   FROM TABLE2 GROUP BY 商品代号dh)AS Y
WHERE   X.商品代号dh=Y.商品代号dh

但是TABLE1中没有D项,该怎么写呢?本人是新手,先谢谢各位大侠~~~

misiling 发表于 2008-4-3 14:27

需要一个外连接就行,哈哈

SELECT  X.商品代号dh
       ,X.进货总量
            ,NVL(Y.总出库数量,0) AS总出库数量
            ,X.进货总量 -NVL(Y.总出库数量,0)  AS 进出货差量
FROM    (SELECT 商品代号dh,SUM(商品进货量sl)AS 进货总量   FROM TABLE1 GROUP BY 商品代号dh)AS X,
        (SELECT 商品代号dh,SUM(出库数量sl)AS 总出库数量   FROM TABLE2 GROUP BY 商品代号dh)AS Y
WHERE   X.商品代号dh=Y.商品代号dh(+)

oivio 发表于 2008-4-4 12:23

谢谢ls的帮忙~~~~

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.