回 帖 发 新 帖 刷新版面

主题:SQL统计 调用问题,期待高手回复!!!!!!!!!!

我的数据库表中有的人有好多个工种的证件(表1)如何用程序生成(表2)这样的格式
‘…….’表示证号,在这里省略。多谢了!

表1
工号   姓名   工种    证号
001     王     钳工    …….
001     王     汽修    …….
008     李     电工    …….
008     李     木工    …….
008     李     钳工    …….


表1
工号    姓名   工种1    工种2   工种3   工种4
001     王     钳工     汽修
008     李     电工     木工    钳工

回复列表 (共17个回复)

沙发

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

**基本意思如此,没调试过.

板凳


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 楼

楼上的在说些什么啊,不帮别人就不要来搞乱啊,最烦这些人,有什么自己去发帖,干嘛在别人的帖胡搞!!!???

4 楼

回复1楼:多谢朋友的指点,但是安你的指点测试了一下未成功,苦于能力有限特此再次求教!

5 楼

不知道这样行不行:

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 楼

楼上的朋友先谢谢了,我的数据库表中有记录5000多条,工种近60个......期待回复!

7 楼

你把数据库文件上传,可以帮你试试。

8 楼

我的数据库表中每个人有不同工种的多个证件,而每个证件是一条记录就构成了一人多条记录,

这多条记录的共同点就是“工号”相同。我想在一条记录中显示这个人的多个证件名称,如下:

表1
工号   姓名   工种    证号
001     王     钳工    …….
001     王     汽修    …….
008     李     电工    …….
008     李     木工    …….
008     李     钳工    …….


表1
工号    姓名   工种1    工种2   工种3   工种4
001     王     钳工     汽修
008     李     电工     木工    钳工



注:记录一万多条,工种近60个

恳请帮助!!!!!!!!!!!!!!!!!

9 楼


我的数据库表中每个人有不同工种的多个证件,而每个证件是一条记录就构成了一人多条记录,

这多条记录的共同点就是“工号”相同。我想在一条记录中显示这个人的多个证件名称,如下:

表1
工号   姓名   工种    证号
001     王     钳工    …….
001     王     汽修    …….
008     李     电工    …….
008     李     木工    …….
008     李     钳工    …….


表1
工号    姓名   工种1    工种2   工种3   工种4
001     王     钳工     汽修
008     李     电工     木工    钳工



注:记录一万多条,工种近60个

恳请帮助!!!!!!!!!!!!!!!!!

10 楼

为什么要用你那个笨办法呢?
其实你现在的表就可以了!

我来回复

您尚未登录,请登录后再回复。点此登录或注册