Access交流中心

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

两个表合并问题,请老师们帮帮忙!

丁丁  发表于: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
这个问题困了我好几个星期了,望哪位朋友指点迷津。

 

Top
蒋元根 发表于:2008-05-31 11:19:00

给你做了个样例,不知道十分符合你的要求,共同学习,共同进步

                                    hotgh2003

点击下载此附件

丁丁 发表于:2008-05-31 11:48:37

谢谢您!问题是解决了。但我没明白为什么“数量1小计”为什么表源不能直接用“表1”,而用“查询1”呢?



十段 发表于:2008-05-31 12:02:55

再给你解决这个问题的2种方法:

1、是用联合查询后再汇总:

见演示:

 

2、建一个新表,然后用追回加查询的方式,将表1、表2的资料汇总到表3,然后再汇总统计。——这种方法稍微繁一些。

 

 

点击下载此附件

两种方法,供你参考



蒋元根 发表于:2008-05-31 14:18:03


蒋元根 发表于:2008-05-31 14:22:17


丁丁 发表于:2008-05-31 14:54:03

第二种方法比较理想,真是太谢谢您了!



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