主题:SQL统计 调用问题,期待高手回复!!!!!!!!!!
tsfdg
[专家分:530] 发布于 2009-02-18 16:47:00
我的数据库表中有的人有好多个工种的证件(表1)如何用程序生成(表2)这样的格式
‘…….’表示证号,在这里省略。多谢了!
表1
工号 姓名 工种 证号
001 王 钳工 …….
001 王 汽修 …….
008 李 电工 …….
008 李 木工 …….
008 李 钳工 …….
表1
工号 姓名 工种1 工种2 工种3 工种4
001 王 钳工 汽修
008 李 电工 木工 钳工
最后更新于:2009-02-27 15:53:00
回复列表 (共17个回复)
沙发
alpen [专家分:1140] 发布于 2009-02-18 19:42:00
select 工种,证号 into curs biao1 from 表1 group by 工种,证号
然后根据biao1中的工种,证号记录数生成个表结构如下
的表2
工号 姓名 工种1 证号1 工种2 证号2....... 证件4
select 工号,姓名,工种,证号 into curs biao1 from 表1 group by 工号,姓名,工种,证号 order by 工号,姓名,工种,证号
select 表2
appe blan
select biao1
go top
LcNumber=biao1.工号
Lnnumber=0
do while not eof()
if biao1.工号=LcNumber
Lnnumber=Lnnumber+1
else
select 表2
appe blan
Lnnumber=1
endif
LcnameA='工种'+str(Lnnumber,1)
LcnameB='工种'+str(Lnnumber,1)
select 表2
repl 工号 with biao1.工号,姓名 with biao1.姓名,LcnameA with biao1.工种,LcnameB with biao1.证号
select biao1
skip
enddo
**基本意思如此,没调试过.
板凳
haodadefen [专家分:0] 发布于 2009-02-19 14:47:00
1、银波为笺 风帆为词 http://www.hao123ie.cn/祝福您无忧无虑 乘风破浪,开拓远大前程
2、人生是一连串的努力和奋斗 http://www.2345.mo.cn/只要你意志坚定努力不懈 一定会成功 祝福你一帆风顺
3、扬起生命之帆 迈向成功之路 http://www.1616.bj.cn/祝人生的幸福 每天与你同在
4、祝福 自这端,hao123到彼端 连缀着满心愉快 直到永远,永远……
5、轻声问候 愿快乐甜美 http://www.9991.bj.cn/至深祝福 常伴你左右
6、翱翔天际!展望更高 更美好的理想—— 祝福你…… 鹏程万里!一帆风顺
3 楼
hw2007name [专家分:4790] 发布于 2009-02-20 12:01:00
楼上的在说些什么啊,不帮别人就不要来搞乱啊,最烦这些人,有什么自己去发帖,干嘛在别人的帖胡搞!!!???
4 楼
tsfdg [专家分:530] 发布于 2009-02-27 15:53:00
回复1楼:多谢朋友的指点,但是安你的指点测试了一下未成功,苦于能力有限特此再次求教!
5 楼
qjbzjp [专家分:8830] 发布于 2009-02-28 18:37:00
不知道这样行不行:
USE "c:\documents and settings\qjbzjp\桌面\学习vf\工号"
SET ENGINEBEHAVIOR 70
SELECT * FROM 工号 GROUP BY 1 INTO CURSOR cursor1
COPY TO mycursor
USE mycursor IN 0
ALTER TABLE mycursor RENAME COLUMN 工种 TO 工种1
ALTER table mycursor ADD COLUMN 工种2 C(7)
ALTER table mycursor ADD COLUMN 工种3 C(7)
ALTER table mycursor ADD COLUMN 工种4 C(7)
SELECT 工号
FOR i=1 TO RECCOUNT("mycursor")
GO i IN mycursor
SET FILTER TO 工号=mycursor.工号
SCAN
DO CASE
CASE 工种="钳工"
REPLACE mycursor.工种1 WITH "钳工"&& IN mycursor
CASE 工种="汽修"
REPLACE mycursor.工种2 WITH "汽修" &&IN mycursor
CASE 工种="电工"
REPLACE mycursor.工种3 WITH "电工"&& IN mycursor
CASE 工种="木工"
REPLACE mycursor.工种4 WITH "木工"&& IN mycursor
ENDCASE
ENDSCAN
NEXT
SELECT mycursor
brow
6 楼
tsfdg [专家分:530] 发布于 2009-04-01 10:19:00
楼上的朋友先谢谢了,我的数据库表中有记录5000多条,工种近60个......期待回复!
7 楼
wuzhouhong [专家分:10890] 发布于 2009-04-02 12:07:00
你把数据库文件上传,可以帮你试试。
8 楼
tsfdg [专家分:530] 发布于 2009-04-02 16:41:00
我的数据库表中每个人有不同工种的多个证件,而每个证件是一条记录就构成了一人多条记录,
这多条记录的共同点就是“工号”相同。我想在一条记录中显示这个人的多个证件名称,如下:
表1
工号 姓名 工种 证号
001 王 钳工 …….
001 王 汽修 …….
008 李 电工 …….
008 李 木工 …….
008 李 钳工 …….
表1
工号 姓名 工种1 工种2 工种3 工种4
001 王 钳工 汽修
008 李 电工 木工 钳工
注:记录一万多条,工种近60个
恳请帮助!!!!!!!!!!!!!!!!!
9 楼
tsfdg [专家分:530] 发布于 2009-04-02 16:46:00
我的数据库表中每个人有不同工种的多个证件,而每个证件是一条记录就构成了一人多条记录,
这多条记录的共同点就是“工号”相同。我想在一条记录中显示这个人的多个证件名称,如下:
表1
工号 姓名 工种 证号
001 王 钳工 …….
001 王 汽修 …….
008 李 电工 …….
008 李 木工 …….
008 李 钳工 …….
表1
工号 姓名 工种1 工种2 工种3 工种4
001 王 钳工 汽修
008 李 电工 木工 钳工
注:记录一万多条,工种近60个
恳请帮助!!!!!!!!!!!!!!!!!
10 楼
lbscyb [专家分:4780] 发布于 2009-04-05 01:23:00
为什么要用你那个笨办法呢?
其实你现在的表就可以了!
我来回复