我想在Excel VBA 中用条SQL语句实现如附图想达到的效果,本人想了好久实在是想不出来,故麻烦各位帮我用SQL语句写写!本人在线等候!
刚才图片有问题现有更新
我也是个新手,趁此机会学习了一下,技术不高,写的太长了,基本符合要求,除了那生产信息,销售信息的合并单元格外
select abcg.型号,阶段,生产日期,生产数,不良数,销售日期,销售数量 from (select abc.型号,阶段,日期,生产日期,生产数,不良数 from (select a.型号,阶段,日期 from [表A$] a left join (select 型号,生产日期 as 日期 from [表B$] UNION select 型号,销售日期 as 日期 from [表C$]) bc on a.型号=bc.型号) abc left join (select 型号,生产日期,SUM(生产数) AS 生产数,SUM(不良数) AS 不良数 from [表B$] group by 型号,生产日期) bg ON abc.型号=bg.型号 and abc.日期=bg.生产日期) abcg left join (select 型号,销售日期,SUM(销售数量) AS 销售数量 from [表C$] group by 型号,销售日期) cg on abcg.型号=cg.型号 and abcg.日期=cg.销售日期 order by abc.型号,abc.日期
刚少了个排序
追问看这个比较头晕呵呵,你能告诉下你的思路吗?
追答1,把BC表的型号和日期用union连接成不重复的,命名为bc,两个字段,型号,日期
2,把a表和bc通过left join生成字段为型号,阶段,日期的新表,命名为abc
3,把b和c表分别按型号和日期汇总,分别命名为bg,cg
4,最后用两个left join把bg,cg,加到abc里去,其中的日期项用来使bg,cg的记录按日期对应