丁丁 发表于:2008-05-31 10:54:01
表1:
字段名:品名 规格 数量1
书 01 20
书 02 10
表2:
字段名:品名 规格 数量2
书 01 2
书 01 1
书 02 1
书 03 1
我先用联合查询建一个临时表,表名:表C:
SELECT DISTINCT 品名,规格 FROM 表1
UNION
SELECT DISTINCT 品名,规格 FROM 表2
得到结果(这正是我需要的结果):
品名 规格
书 01
书 02
书 03
下面我用:
SELECT 表C.品名, 表C.规格, Sum(表1.数量1) AS 数量1小计, Sum(表2.数量2) AS 数量2小计
FROM (表C LEFT JOIN 表1 ON (表C.规格 = 表1.规格) AND (表C.品名 = 表1.品名)) LEFT JOIN 表2 ON (表C.规格 = 表2.规格) AND (表C.品名 = 表2.品名)
GROUP BY 表C.品名, 表C.规格;
得到的结果:
品名 规格 数量1小计 数量2小计
书 01 40 3
书 02 10 1
书 03 1
而我需要的结果是:
品名 规格 数量1小计 数量2小计
书 01 20 3
书 02 10 1
书 03 1
这个问题困了我好几个星期了,望哪位朋友指点迷津。
给你做了个样例,不知道十分符合你的要求,共同学习,共同进步
hotgh2003
点击下载此附件
谢谢您!问题是解决了。但我没明白为什么“数量1小计”为什么表源不能直接用“表1”,而用“查询1”呢?
再给你解决这个问题的2种方法:
1、是用联合查询后再汇总:
见演示:
2、建一个新表,然后用追回加查询的方式,将表1、表2的资料汇总到表3,然后再汇总统计。——这种方法稍微繁一些。
点击下载此附件
两种方法,供你参考