Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

ACCESS选择查询出来的数不准,为什么?

萌萌大兔兔  发表于:2015-04-29 16:39:09  
复制



联接属性我选的是第一个

 

Top
煮江品茶 发表于:2015-04-29 16:46:41

原因是脑袋被门夹了。


是记录条数不对?还是某个字段值不对?还是域函数计算的结果不对?



萌萌大兔兔 发表于:2015-04-29 16:50:25

这个是我运行后得出的数.统计出来的数是不对的.


SELECT 货号ID.货号, 进货表.尺码, Sum(进货表.数量) AS 进货货数量合计, Sum(出货表.数量) AS 出货数量合计
FROM (货号ID INNER JOIN 进货表 ON 货号ID.货号 = 进货表.货号) INNER JOIN 出货表 ON (进货表.尺码 = 出货表.尺码) AND (货号ID.货号 = 出货表.货号)
GROUP BY 货号ID.货号, 进货表.尺码
HAVING (((货号ID.货号)="MC0099") AND ((进货表.尺码)=150));


这个是SQL语句.



哪位高手哥哥帮我看看啊



煮江品茶 发表于:2015-04-29 17:08:49
Select a.货号,a.尺码,Sum(a.进货数量) as 进货数量,Sum(a.出货数量) as 出货数量
From (Select 货号,尺码,数量 as 进货数量,0 as 出货数量 From 进货表
Union All Select 货号,尺码,0 as 进货数量,数量 as 出货数量 From 进货表) as a


萌萌大兔兔 发表于:2015-04-29 17:18:49
高手哥哥,我看不太懂啊.别嫌我烦,能详细点说明吗??谢谢啦,我是初学者.来吉林请你吃饭

煮江品茶 发表于:2015-04-30 12:09:40

Select a.货号,a.尺码,Sum(a.进货数量) as 进货数量,Sum(a.出货数量) as 出货数量
From 
    (Select 货号,尺码,数量 as 进货数量,0 as 出货数量 From 进货表
     Union All 
     Select 货号,尺码,0 as 进货数量,数量 as 出货数量 From 进货表) as a
GROUP BY a.货号,a.尺码


这个查询是说进货表与出货表没球直接关系,而是各自独立的两个表。因此这两个表的数据要捣腾到一起,不是采用联接查询,而是应该采用联合查询。


按照你的处理,是认为进货表和出货表需要货号与尺码均相同。这实际是不正确的,原因在于进货了,并不一定出货,出货的东西也不一定是当前进货的(因为可能有库存)。所以你的处理统计的数据是不全的。



总记录:5篇  页次:1/1 9 1 :