一个数据库处理的问题,请马上帮忙,急用!(100分)

W

wishme

Unregistered / Unconfirmed
GUEST, unregistred user!
一个表,字段结构如下:

客户号 品名 数量
1001 苹果 10
1001 香蕉 20
1001 桔子 10
1002 苹果 20
1002 香蕉 10

要把该表数据倒成如下格式,该怎么写?

客户号 苹果 香蕉 桔子 总计
1001 10 20 10 40
1002 20 10 30

该怎么写程序?我用的是delphi5/ACCESS
其实就是字段值换成字段的处理
 
交叉表,在access中有向导,自己试试
再拷过来就好了
 
var kh:string;客户号
s:string;
kh:=客户号
s:=客户号;
总计:=0;

whule kh<>客户号 do
begin
if 品名=‘苹果’ then
s:=s+
else
s:=s+' ';
endi

if 品名=‘ 香蕉' then
s:=s+
else
s:=s+' ';
endi

if 品名=‘桔子' then
s:=s+
else
s:=s+' ';
endi
总计:=总计+ 品名;
skip
if kh<>客户号 then
kh:= kh<>客户号;
s:=s+ 总计
endi
end








 
从原表中取出客户号作为循环条件,建立另外一张表,存储新的结构。
query1.sql:='select distinct kh from 表'
query1.open
while nto query1.eof
begin
query2.sql:='select 苹果 from 表 where 客户号=kh'
query3.open
ss:=query1.fieldbyname('苹果').asstring;
query2.close;
query2.sql:='select 香蕉 from 表 where 客户号=kh'
query2.open
ss:=ss+' '+query1.fieldbyname('香蕉').asstring;
‘其他类似
sql='insert into 新表(客户号,类别) values(kh,ss)'
adoconnection.execute(sql)
query1.next
end
 
顶部