select 产名名称=isnull(a.产名名称,b.产名名称),sum(入库数量) as 入库数量,sum(出库数量) as 出库数量 from 入库表 a full join 出库表 b on a.产名名称=b.产名名称 group by isnull(a.产名名称,b.产名名称)

解决方案 »

  1.   

    select 产品.产品名称 ,入库.入库数量,出库.出库数量
    from 产品 left join 入库 on 入库.产品名称=产品.产品名称
     left join 出库 on 出库.产品名=产品.产品名
      

  2.   

    select a.产品名称,
      IsNull(b.入库数量,0) as 入库数量, 
      IsNull(c.出库数量,0) as 出库数量
    from 产品表 a
    Left Join 入库表 b on a.产品名称 = b.产品名称
    Left Join 出库表 c Join a.产品名称 = c.产品名称
      

  3.   

    select isnull(a.产品名称,b.产品名称),isnull(sum(a.入库数量),0),isnull(sum(b.出库数量),0)
    from 入库表 a full join 出库表 b on a.产品名称=b.产品名称
    group by isnull(a.产品名称,b.产品名称)
      

  4.   

    以上都会重复计算吧?SELECT 产名名称=isnull(a.产名名称,b.产名名称),ISNULL(A.入库数量,0) AS 入库数量,ISNULL(B.出库数量,0) AS 出库数量
    FROM (
    SELECT 产品名称,SUM(入库数量) AS 入库数量 FROM 入库 GROUP BY 产品名称
    ) AS A FULL JOIN (
    SELECT 产品名称,SUM(出库数量) AS 出库数量 FROM 出库 GROUP BY 产品名称
    ) AS B
    ON A.产品名称=B.产品名称
      

  5.   

    看错了,lhh0ydhcg(lhh_ydhcg)、txlicenhe(马可) 的不会重复计算但是结果和楼主列出的不同
      

  6.   

    我是在access中检验你们的语句的都不行啦to: zheninchangjiang(我爱燕子)
    纠正了您的错别字后如下:
    select 产品名称=isnull(a.产品名称,b.产品名称),sum(入库数量) as 入库数量,sum(出库数量) as 出库数量 from 入库 a full join 出库 b on a.产品名称=b.产品名称 group by isnull(a.产品名称,b.产品名称)
    运行后提示:FROM子句语法错误。to:lhh0ydhcg(lhh_ydhcg)select 产品.产品名称 ,入库.入库数量,出库.出库数量
    from 产品 left join 入库 on 入库.产品名称=产品.产品名称
     left join 出库 on 出库.产品名称=产品.产品名称运行后提示:语法错误(操作符丢失)……
      

  7.   

    不要着急,我在sql server里面再试一试
      

  8.   

    ACCESS你要早说明,不说明谁知道?SELECT IIF(a.产名名称 IS NULL,b.产名名称,a.产名名称),IIF(A.入库数量 IS NULL,0,A.入库数量) AS 入库数量,IIF(B.出库数量 IS NULL,0,B.出库数量) AS 出库数量
    FROM (
    SELECT 产品名称,SUM(入库数量) AS 入库数量 FROM 入库 GROUP BY 产品名称
    ) AS A FULL JOIN (
    SELECT 产品名称,SUM(出库数量) AS 出库数量 FROM 出库 GROUP BY 产品名称
    ) AS B
    ON A.产品名称=B.产品名称试试,ACCESS我不是很熟
      

  9.   

    我并不是要在access里面寻求这个答案,只是access正好打开了,就顺便用了检验一下了我不需要用应用程序所独有的功能(如access的iif)来解决这个问题,我要通用的,要标准的sql语句!
      

  10.   

    我在sql server 2000里面又把上面的语句测试了一下只有pbsql(风云)的语句
    select isnull(a.产品名称,b.产品名称),isnull(sum(a.入库数量),0),isnull(sum(b.出库数量),0)
    from 入库表 a full join 出库表 b on a.产品名称=b.产品名称
    group by isnull(a.产品名称,b.产品名称)才完全满足要求,但是不能在access运行!是不是还不够标准?
    其他人的语句要么语法错误,根本通不过检验,要么出现全是null的纪录!
      

  11.   

    最后一句话写错了,改之:
    其他人的语句要么语法错误,根本通不过检验,要么出现多余的值全是null的纪录!
      

  12.   

    你的要求各种数据库的解决方法都不一样,所以通用本冒牌无能为力了pbsql(风云)的语句
    select isnull(a.产品名称,b.产品名称),isnull(sum(a.入库数量),0),isnull(sum(b.出库数量),0)
    from 入库表 a full join 出库表 b on a.产品名称=b.产品名称
    group by isnull(a.产品名称,b.产品名称)如果入库表和出库表有多条相同的产品名称记录,会重复计算,不知道楼主先追求结果正确还是先追求通用。不过从你的回复我学到一样东西,ACCESS也可以用ISNULL,所以我的改成:
    SELECT isnull(a.产名名称,b.产名名称) AS 产名名称,ISNULL(A.入库数量,0) AS 入库数量,ISNULL(B.出库数量,0) AS 出库数量
    FROM (
    SELECT 产品名称,SUM(入库数量) AS 入库数量 FROM 入库 GROUP BY 产品名称
    ) AS A FULL JOIN (
    SELECT 产品名称,SUM(出库数量) AS 出库数量 FROM 出库 GROUP BY 产品名称
    ) AS B
    ON A.产品名称=B.产品名称冒牌无能为力了,不过不用怕,还有正牌呢
      

  13.   

    在Access中利用查询向导,很容易生成这个查询语句。
    何必再争论某一行语句写错了。
    做程序关键在思路。
      

  14.   

    哎呀,是我水平太低,没有发现问题,正如zicxc(冒牌邹建 V0.1)所说的pbsql(风云)的语句在入库表和出库表有多条相同的产品名称记录时是会出错,如下:
    入库: 1 土豆 100
    2 地瓜 200
    3 芒果 200
    4 芒果 300
    5 香蕉 40
    6 土豆 20
    出库:
    1 土豆 50
    2 香蕉 300
    3 苹果 100
    4 香蕉 30
    查询结果:
             地瓜 200 0
    芒果 500 0
    苹果 0 100
    土豆 120 100
    香蕉 80 330
    土豆的出库数量应是50而不是100。
      

  15.   

    to zicxc(冒牌邹建 V0.1)你改后的语句在sql server在是可以了,应该换名“正牌”了至于access好像不认识FULL JOIN ,不管他了
      

  16.   

    我发现在CSDN上,一旦问题有了一个答案,就没有人再说话了
    谢谢各位结!
      

  17.   

    提醒楼主一下,希望能看到txlicenhe(马可) 的答案是对的,有些需要是要用他们的方法zheninchangjiang(我爱燕子) 的和pbsql(风云)的语句一样
      

  18.   

    我看到了,好久不上CSDN,我看到了,对于我做错说错了的,说声抱歉________