表
- 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