select 产品.产品名称 ,入库.入库数量,出库.出库数量 from 产品 left join 入库 on 入库.产品名称=产品.产品名称 left join 出库 on 出库.产品名=产品.产品名
select a.产品名称, IsNull(b.入库数量,0) as 入库数量, IsNull(c.出库数量,0) as 出库数量 from 产品表 a Left Join 入库表 b on a.产品名称 = b.产品名称 Left Join 出库表 c Join a.产品名称 = c.产品名称
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.产品名称)
以上都会重复计算吧?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.产品名称
我是在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 出库.产品名称=产品.产品名称运行后提示:语法错误(操作符丢失)……
不要着急,我在sql server里面再试一试
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我不是很熟
我在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的纪录!
你的要求各种数据库的解决方法都不一样,所以通用本冒牌无能为力了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.产品名称冒牌无能为力了,不过不用怕,还有正牌呢
from 产品 left join 入库 on 入库.产品名称=产品.产品名称
left join 出库 on 出库.产品名=产品.产品名
IsNull(b.入库数量,0) as 入库数量,
IsNull(c.出库数量,0) as 出库数量
from 产品表 a
Left Join 入库表 b on a.产品名称 = b.产品名称
Left Join 出库表 c Join a.产品名称 = c.产品名称
from 入库表 a full join 出库表 b on a.产品名称=b.产品名称
group by isnull(a.产品名称,b.产品名称)
FROM (
SELECT 产品名称,SUM(入库数量) AS 入库数量 FROM 入库 GROUP BY 产品名称
) AS A FULL JOIN (
SELECT 产品名称,SUM(出库数量) AS 出库数量 FROM 出库 GROUP BY 产品名称
) AS B
ON A.产品名称=B.产品名称
纠正了您的错别字后如下:
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 出库.产品名称=产品.产品名称运行后提示:语法错误(操作符丢失)……
FROM (
SELECT 产品名称,SUM(入库数量) AS 入库数量 FROM 入库 GROUP BY 产品名称
) AS A FULL JOIN (
SELECT 产品名称,SUM(出库数量) AS 出库数量 FROM 出库 GROUP BY 产品名称
) AS B
ON A.产品名称=B.产品名称试试,ACCESS我不是很熟
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的纪录!
其他人的语句要么语法错误,根本通不过检验,要么出现多余的值全是null的纪录!
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.产品名称冒牌无能为力了,不过不用怕,还有正牌呢
何必再争论某一行语句写错了。
做程序关键在思路。
入库: 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。
谢谢各位结!