VB 同一字段相同值合并,并生成新表且有新的字段名
如下:id 批次号 品牌 数量
100 1745 OU 21
101 1745 PS 23
102 1745 LK 50
103 1746 OU 11
104 1746 PS 12
105 1746 LK 21
要实现如下功能,使用sql语句,写成下表
id 批次号 OU PS LK
100 1745 21 23 50
101 1746 11 12 21
小弟实在示黔驴技穷了,想了好久没想出来,还请各位帮忙啊!谢谢!
提示这只是数据库一小部份,真正的字段有很多.
我原来编的程序只采取这种方法如:
Data1.Database.Execute "........."
请使用此方法实现.
因为我不喜欢用ADOC或DAO,怕麻烦
升级VB SP6后DATA控件仍然可以访问ACCESS2000
--------------------编程问答-------------------- 根据你的数据库,按下面的方式逐个SQL:
Create table t2 (id autonumber, 批次号 varchar(4), OU int, ps int, lk int ...);--------------------编程问答-------------------- update t2 set OU = SUM(t1.数量) FROM t1 where t1. 批次号=t2. 批次号 and t1.品牌='OU';
insert into t2 (批次号) select 批次号 from t1 group by 批次号 order by 批次号;
update t2 set OU = SUM(t1.数量) FROM t1 where t1. 批次号=t2. 批次号 and t1.品牌='OU';
update t2 set PS = SUM(t1.数量) FROM t1 where t1. 批次号=t2. 批次号 and t1.品牌='PS';
...
这句不行始终报警不知道哪有问题,再帮帮看下,上面两句没问题,都成生了.
我改成用DAO操作 --------------------编程问答-------------------- 根据你的数据库自己改成合法的语句,反正思路已经有了。 --------------------编程问答-------------------- db.Execute "update t2 set PA=myrejectdata.REJECT_QTY where myrejectdata.LOT_NBR=t2.LOT_NBR and myrejectdata.REJECT_CATG='PA'"
看看我哪里出了错 --------------------编程问答-------------------- db.execute "update t2 set OU = t1.数量 FROM t1 where t1. 批次号=t2. 批次号 and t1.品牌='OU'"
还是不行也试过了 --------------------编程问答-------------------- 自己搞定,你的方法不对有问题。要使用外连接
补充:VB , 数据库(包含打印,安装,报表)