首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > VFP >

请问怎么作此查询

2012-04-14 
请教如何作此查询表SQL code机号品种日期1a12号2a15号3b12号4b10号5b9号6c9号7c15号8d18号9d10号10a12号11

请教如何作此查询

SQL code
机号      品种          日期1         a          12号2         a          15号3         b          12号4         b          10号5         b           9号6         c           9号7         c          15号8         d          18号9         d          10号10        a          12号11        b          10号12        c          15号

请问如何查询出此表:

SQL code
品种 9号 10号 11号 12号 13号 14号 15号 16号 17号 18号 a                 1             2 a                10 b   5    4        3 b       11 c   6                           7 c                              12 d        9                                    8

谢谢!这里编排格式有问题,意思是品种和日期交叉对应机号

[解决办法]
SQL code
Create Cursor 原表 (机号 C(10),品种 C(10),日期 C(4))Insert Into 原表 Values ("1#","a","1号")Insert Into 原表 Values ("4#","a","1号")Insert Into 原表 Values ("7#","a","1号")Insert Into 原表 Values ("12#","a","1号")Insert Into 原表 Values ("2#","a","3号")Insert Into 原表 Values ("5#","a","3号")Insert Into 原表 Values ("10#","a","3号")Insert Into 原表 Values ("3#","a","4号")Insert Into 原表 Values ("9#","a","4号")Insert Into 原表 Values ("6#","b","3号")Insert Into 原表 Values ("11#","b","3号")Insert Into 原表 Values ("8#","b","5号")Browse  && 原表内容*-- ↑ 产生测试数据lcFieldStr='Create Cursor 结果表 (品种 C(10)'For lnI=1 To 31    lcFieldStr=lcFieldStr+',_'+Transform(lnI)+'号 C(4)'EndforlcFieldStr=lcFieldStr+')'&lcFieldStr.Select 原表LocatelcPZ=''Scan    Select 结果表    Locate For Alltrim(品种)==Alltrim(原表.品种) And Empty(Evaluate('_'+原表.日期))    If !Found()        Append Blank    Endif    Replace 品种 With 原表.品种,('_'+原表.日期) With 原表.机号EndscanSelect 结果表Index On 品种 To pz_syLocateBrowse && 结果表内容
[解决办法]
服!

我替你一次都做了吧!
问题:


答案:
SQL code
Set Safety Off*½¨±í¼°Éú³É²âÊÔÊý¾ÝCreate Table Ô´±í (»úºÅ c(5),Æ·ÖÖ c(1),ÈÕÆÚ c(4))Insert Into Ô´±í (»úºÅ,Æ·ÖÖ,ÈÕÆÚ) Values ("1#","a","1ºÅ")Insert Into Ô´±í (»úºÅ,Æ·ÖÖ,ÈÕÆÚ) Values ("4#","a","1ºÅ")Insert Into Ô´±í (»úºÅ,Æ·ÖÖ,ÈÕÆÚ) Values ("7#","a","1ºÅ")Insert Into Ô´±í (»úºÅ,Æ·ÖÖ,ÈÕÆÚ) Values ("12#","a","1ºÅ")Insert Into Ô´±í (»úºÅ,Æ·ÖÖ,ÈÕÆÚ) Values ("2#","a","3ºÅ")Insert Into Ô´±í (»úºÅ,Æ·ÖÖ,ÈÕÆÚ) Values ("5#","a","3ºÅ")Insert Into Ô´±í (»úºÅ,Æ·ÖÖ,ÈÕÆÚ) Values ("10#","a","3ºÅ")Insert Into Ô´±í (»úºÅ,Æ·ÖÖ,ÈÕÆÚ) Values ("3#","a","4ºÅ")Insert Into Ô´±í (»úºÅ,Æ·ÖÖ,ÈÕÆÚ) Values ("9#","a","4ºÅ")Insert Into Ô´±í (»úºÅ,Æ·ÖÖ,ÈÕÆÚ) Values ("6#","b","3ºÅ")Insert Into Ô´±í (»úºÅ,Æ·ÖÖ,ÈÕÆÚ) Values ("11#","b","3ºÅ")Insert Into Ô´±í (»úºÅ,Æ·ÖÖ,ÈÕÆÚ) Values ("8#","b","5ºÅ")Create Table ½á¹û±í (Æ·ÖÖ c(1))For i=1 To 31    zdname="_"+ALLTRIM(Str(i))+"ºÅ"    Alter Table ½á¹û±í Add Column &zdname c(5)Endfor*Éú³É½á¹ûSelect Ô´±íIndex On Æ·ÖÖ+CHRTRAN(STR(VAL(Chrtran(»úºÅ,'#','')),4,0),' ','0') To Ô´±íGO topScan    Scatter Memv    zdname="_"+ALLTRIM(m.ÈÕÆÚ)    Select ½á¹û±í    Go Top    Locate For Æ·ÖÖ==m.Æ·ÖÖ    Do While .t.        If Found() And ALLTRIM(&zdname)==""            Replace &zdname With m.»úºÅ            Exit        Else            If !Eof()                Continue            Else                Append Blank                Replace Æ·ÖÖ With m.Æ·ÖÖ,&zdname With m.»úºÅ                Exit            Endif        Endif    Enddo    Select Ô´±íEndscanSet Safety OnSelect ½á¹û±íBrowse 

热点排行