入库表IN(产品ID字段PID,入库数InNum)  
出库表OUT(产品ID字段PID,出库数OutNum)  现在我想查询入库表的信息,并且库存(入库数-出库数)大于10的信息,请教!

解决方案 »

  1.   

     (不要高估你的汉语表达能力或者我的汉语理解能力)
       建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
       
       1. 你的 create table xxx .. 语句
       2. 你的 insert into xxx ... 语句
       3. 结果是什么样,(并给以简单的算法描述)
       4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。   
      

  2.   

    入库表ruku
    CREATE TABLE ruku(ID INT NOT NULL AUTO_INCREMENT,PID INT NOT NULL,InNum INT NOT NULL,PNAME VARCHAR(50),INDEX(ID));
    CREATE TABLE chuku(ID INT NOT NULL AUTO_INCREMENT,PID INT NOT NULL,OutNum INT NOT NULL,PNAME VARCHAR(50),INDEX(ID));INSERT INTO ruku(PID,InNum,PNAME) VALUES(100,20,'产品1');
    INSERT INTO ruku(PID,InNum,PNAME) VALUES(101,10,'产品2');
    INSERT INTO chuku(PID,OutNum,PNAME) VALUES(100,15,'产品1');
    INSERT INTO chuku(PID,OutNum,PNAME) VALUES(101,8,'产品2');产品1的库存是5,产品2的库存是2,比如我想查询库存大于3的入库信息。
    SELECT r.*,r.InNum-c.OutNum FROM ruku r INNER JOIN chuku c ON r.PID=c.PID WHERE r.InNum-c.OutNum >3;
    这样是很容易可以查询出库存大于3的入库信息。现在的需求是,我固定了SQL语句的前提下,比如 SELECT * FROM ruku WHERE 1;
    在后面进行添加SQL语句,查询出库存大于3的入库信息,不知道大家明白我的意思了吗?
      

  3.   

    drop table if exists tmp_ruku_ids;
    create table  tmp_ruku_ids as  SELECT ruke.pid FROM ruku r INNER JOIN chuku c ON r.PID=c.PID WHERE r.InNum-c.OutNum >3;
    SELECT * FROM ruku WHERE pid in(select pid from  tmp_ruku_ids );