表A:
产品  入库量  入库日期
喇叭    30     05-3-14 12:30
大灯    40     05-3-14 13:10表B:
产品  出库量  出库日期
喇叭    15     05-3-14 12:30
大灯    25     05-3-14 13:10现要以下表C:
产品  入库量  出库量    
喇叭    30     15     
大灯    40     25     就是在 同一天 的时间内,由A和B生成C.请问高手如何用sql语句写出来?不胜感激

解决方案 »

  1.   

    是什么数据库,如果是SQLServer,可以用以下SQL:SELECT A.产品, A.入库量, B.出库量 FROM A INNER JOIN B ON A.产品 = B.产品 AND LTRIM(STR(YEAR(A.入库日期)))+ LTRIM(STR(MONTH(A.入库日期))) + LTRIM(STR(DAY(A.入库日期)))= LTRIM(STR(YEAR(B.出库日期))) + LTRIM(STR(MONTH(B.出库日期))) + LTRIM(STR(DAY(B.出库日期)))
      

  2.   

    刚在Access下测试过,上述SQL也可以运行.
      

  3.   

    select 表A.产品 ,表A.入库量 ,表B.出库量 from 表A,表B
    where 表A.产品 = 表B.产品(+) and TO_CHAR(表A.入库日期,'YYYYMMDD') = TO_CHAR(表B.出库日期,'YYYYMMDD')
    union
    select 表A.产品 ,表A.入库量 ,表B.出库量 from 表A,表B
    where 表B.产品 = 表B.产品(+) and TO_CHAR(表A.入库日期,'YYYYMMDD') = TO_CHAR(表B.出库日期,'YYYYMMDD')
      

  4.   

    上述的SQL语句。会输出只有入库没有出库或者只有出库没有入库的数据。如果只要处理既有出库又有入库的数据,可以用下面的SQL语句。楼住请把要求也清楚。select 表A.产品 ,表A.入库量 ,表B.出库量 from 表A,表B
    where 表A.产品 = 表B.产品 and TO_CHAR(表A.入库日期,'YYYYMMDD') = TO_CHAR(表B.出库日期,'YYYYMMDD')
      

  5.   

    你这种情况用Left Join 或Right Join 比较好
    代码:
    SELECT 表A.产品 , 表A.入库量 ,  表B.出库量  
    FROM 表A Left Join 表B
    ON 表A.产品=表B.产品
      

  6.   


    select 产品 ,入库量=(select 入库量 from a where 产品=c.产品)
    ,出库量  =(select 出库量   from b where 产品=c.产品)
    from c
      

  7.   

    你这种情况用Left Join 或Right Join 比较好
    代码:
    SELECT 表A.产品 , 表A.入库量 ,  表B.出库量  
    FROM 表A Left Join 表B
    ON 表A.产品=表B.产品