怎樣將WEBSAMS 內所有監護人資料,跟輸入的次序匯出? 例如1: 第一輸入父親, 第二輸入母親,第三輸入祖父 例如2: 第一輸入母親, 第二輸入母親,第三輸入祖母 例如3: 第一輸入祖母, 第二輸入祖父,第三輸入父親 因為想出第一聯絡人, 第二聯絡人, 第三聯絡人, 方便老師聯絡。即以下的怎樣改?不想跟監護人, 父親, 母親, 而是跟WEBSAMS內的1, 2, 3。可以嗎? select a.REGNO '註冊編號', a.schyear '學年', a.classcode '班別', a.classno '班號', a.ENNAME '英名姓名', a.CHNAME '中文姓名', a.SEX '性別', a.HKID '身份證', a1.ch_des '身份證明文件類型', a.DOCNO '身份證明文件號碼', dateformat(a.DOB, 'DD/MM/YYYY') as '出生日期', (datediff(day, a.dob, now())/365) '年齡', a.RELIGION '宗教', a.PLACEOFORIGIN '籍貫', a.POB '出生地點', a.BIRTHCERT '出生證明書', dateformat(d.FIRSTATTDATE, 'DD/MM/YYYY') as '入學日期', t.classcode '入學級別', a.STRN '學生編號', a.HOMETEL '家居電話', a.email '電郵', a.MOBILENO '流動電話', a.SCHFROM '以前就讀學校', a.LASTCLASSLVL '以前就讀級別', dateformat(a.DATEFROMMAINLAND, 'DD/MM/YYYY') '內地來港日期', guard.CHNAME '監護人姓名', guard.enNAME '監護人英文姓名', guard.EMERGENCYPHONE '監護人緊急電話', guard.occupation '監護人職業', guard1.ch_des '監護人關係', f.chname '父親姓名', f.enname '父親英文姓名', f.phone '父親電話', f.EMERGENCYPHONE '父親緊急聯絡電話', f.OCCUPATION '父親職業', m.chname '母親姓名', m.enname '母親英文姓名', m.phone '母親電話', m.EMERGENCYPHONE '母親緊急聯絡電話', m.OCCUPATION '母親職業', (select list(string(SIBC.CLASSNAME, ' ', SIB.CHNAME), ', ') from VW_STU_LATESTSTUDENT SIB left outer join TB_SCH_SCHCLASS SIBC on SIBC.SUID=SIB.SUID and SIBC.SCHYEAR=SIB.SCHYEAR and SIBC.SCHLEVEL=SIB.SCHLVL and SIBC.SCHSESSION=SIB.SCHSESS and SIBC.CLASSLEVEL=SIB.CLASSLVL and SIBC.CLASSCODE=SIB.CLASSCODE where SIB.SUID=a.SUID and SIB.SCHYEAR=a.SCHYEAR and SIB.SIBGRP<>-1 and SIB.SIBGRP=a.SIBGRP and SIB.STUID<>a.STUID ) '兄弟姊妹', (case when trim(a.CHDISTRICT)<>'' then trim(a.CHDISTRICT) else '' end) + (case when trim(a.CHSTREET)<>'' then trim(a.CHSTREET) else '' end) + (case when trim(a.CHVILLAGEESTATE)<>'' then trim(a.CHVILLAGEESTATE) else '' end) +(case when trim(a.CHBUILDING)<>'' then trim(a.CHBUILDING) else '' end) +(case when trim(a.CHBLKNO)<>'' then trim(a.CHBLKNO) + '座' else '' end) +(case when trim(a.CHFLOORNO)<>'' then trim(a.CHFLOORNO) + '樓' else '' end)+(case when trim(a.CHFLATNO)<>'' then trim(a.CHFLATNO) + '室' else '' end) '家居地址' from VW_STU_LATESTSTUDENT a left outer join TB_SCH_SCHCLASS s on s.SUID=a.SUID and s.SCHYEAR=a.SCHYEAR and s.SCHLEVEL=a.SCHLVL and s.SCHSESSION=a.SCHSESS and s.CLASSLEVEL=a.CLASSLVL and s.CLASSCODE=a.CLASSCODE left outer join TB_STU_PARENT guard on guard.SUID = a.SUID and guard.STUID=a.STUID and guard.GUARDIANIND='1' left outer join TB_HSE_COMMON guard1 on a.SUID=guard1.SUID and guard1.CODE_ID=guard.relation and guard1.TB_ID='RELATE' left outer join TB_STU_PARENT m on a.SUID = m.SUID and a.STUID = m.STUID and m.RELATION = '02' left outer join TB_STU_PARENT f on a.SUID = f.SUID and a.STUID = f.STUID and f.RELATION = '01' left outer join TB_STU_STUSCHREC t on a.SUID=t.SUID and a.STUID=t.STUID and t.SCHYEAR=(SELECT MIN(SCHYEAR)FROM TB_STU_STUSCHREC U WHERE t.SUID = U.SUID AND t.STUID = U.STUID) left outer join TB_HSE_COMMON n on a.SUID=n.SUID and n.CODE_ID=a.Nationality and n.TB_ID='NATION' left outer join TB_HSE_COMMON h on a.SUID=h.SUID and h.CODE_ID=a.SCHHOUSE and h.TB_ID='SCHHUS' left outer join (select STUID, min(FIRSTATTDATE) 'FIRSTATTDATE' from TB_STU_STUSCHREC group by STUID) d on d.STUID = a.STUID left outer join TB_HSE_COMMON a1 on a1.SUID=a.SUID and a1.CODE_ID=a.DOCTYPE and a1.TB_ID='TVLDOC' where a.SCHYEAR=? and a.CLASSLVL=? order by a.SCHLVL, a.SCHSESS, a.CLASSLVL, a.CLASSCODE, a.CLASSNO
老師, 你好 若按你的要求, 在原本的SQL上做列出不同的次序, 是不可能的。 因為顯示的欄位名稱已經定了 (例如: 父親姓名, 父親英文姓名, 父親電話, 父親緊急聯絡電話...等等) 惟有把所有監護人的資料顯示在同一個欄位名稱上, 叫"所有監護人資料", 而每一位監護人都用 "||" 來分隔開。 這樣系統資料才有機會按不同的次序列出, 但由於以下紅色字的SQL部份未能加入SORTING功能, 請你試試匯出資料看看是否跟WEBSAMS的次序一樣, 因為在我的系統是可以做到一樣的。 select a.REGNO '註冊編號', a.schyear '學年', a.classcode '班別', a.classno '班號', a.ENNAME '英名姓名', a.CHNAME '中文姓名', a.SEX '性別', a.HKID '身份證', a1.ch_des '身份證明文件類型', a.DOCNO '身份證明文件號碼', dateformat(a.DOB, 'DD/MM/YYYY') as '出生日期', (datediff(day, a.dob, now())/365) '年齡', a.RELIGION '宗教', a.PLACEOFORIGIN '籍貫', a.POB '出生地點', a.BIRTHCERT '出生證明書', dateformat(d.FIRSTATTDATE, 'DD/MM/YYYY') as '入學日期', t.classcode '入學級別', a.STRN '學生編號', a.HOMETEL '家居電話', a.email '電郵', a.MOBILENO '流動電話', a.SCHFROM '以前就讀學校', a.LASTCLASSLVL '以前就讀級別', dateformat(a.DATEFROMMAINLAND, 'DD/MM/YYYY') '內地來港日期', ( select list(string(ppcommon.ch_des, '資料: 姓名: ',pparent.chname, ', 英文名: ',pparent.enname, ', 電話: ',pparent.phone, ', 緊急電話: ',pparent.EMERGENCYPHONE, ', 職業: ',pparent.OCCUPATION),' || ') from wsadmin.TB_STU_PARENT pparent left outer join wsadmin.TB_HSE_COMMON ppcommon on pparent.SUID=ppcommon.SUID and pparent.relation=ppcommon.CODE_ID and ppcommon.TB_ID='RELATE' where pparent.suid=a.suid and pparent.stuid=a.stuid and 1=1 ) '所有監護人資料', (select list(string(SIBC.CLASSNAME, ' ', SIB.CHNAME), ', ') from wsadmin.VW_STU_LATESTSTUDENT SIB left outer join wsadmin.TB_SCH_SCHCLASS SIBC on SIBC.SUID=SIB.SUID and SIBC.SCHYEAR=SIB.SCHYEAR and SIBC.SCHLEVEL=SIB.SCHLVL and SIBC.SCHSESSION=SIB.SCHSESS and SIBC.CLASSLEVEL=SIB.CLASSLVL and SIBC.CLASSCODE=SIB.CLASSCODE where SIB.SUID=a.SUID and SIB.SCHYEAR=a.SCHYEAR and SIB.SIBGRP<>-1 and SIB.SIBGRP=a.SIBGRP and SIB.STUID<>a.STUID ) '兄弟姊妹', (case when trim(a.CHDISTRICT)<>'' then trim(a.CHDISTRICT) else '' end) + (case when trim(a.CHSTREET)<>'' then trim(a.CHSTREET) else '' end) + (case when trim(a.CHVILLAGEESTATE)<>'' then trim(a.CHVILLAGEESTATE) else '' end) +(case when trim(a.CHBUILDING)<>'' then trim(a.CHBUILDING) else '' end) +(case when trim(a.CHBLKNO)<>'' then trim(a.CHBLKNO) + '座' else '' end) +(case when trim(a.CHFLOORNO)<>'' then trim(a.CHFLOORNO) + '樓' else '' end)+(case when trim(a.CHFLATNO)<>'' then trim(a.CHFLATNO) + '室' else '' end) '家居地址' from wsadmin.VW_STU_LATESTSTUDENT a left outer join wsadmin.TB_SCH_SCHCLASS s on s.SUID=a.SUID and s.SCHYEAR=a.SCHYEAR and s.SCHLEVEL=a.SCHLVL and s.SCHSESSION=a.SCHSESS and s.CLASSLEVEL=a.CLASSLVL and s.CLASSCODE=a.CLASSCODE left outer join wsadmin.TB_STU_STUSCHREC t on a.SUID=t.SUID and a.STUID=t.STUID and t.SCHYEAR=(SELECT MIN(SCHYEAR)FROM wsadmin.TB_STU_STUSCHREC U WHERE t.SUID = U.SUID AND t.STUID = U.STUID) left outer join wsadmin.TB_HSE_COMMON n on a.SUID=n.SUID and n.CODE_ID=a.Nationality and n.TB_ID='NATION' left outer join wsadmin.TB_HSE_COMMON h on a.SUID=h.SUID and h.CODE_ID=a.SCHHOUSE and h.TB_ID='SCHHUS' left outer join (select STUID, min(FIRSTATTDATE) 'FIRSTATTDATE' from wsadmin.TB_STU_STUSCHREC group by STUID) d on d.STUID = a.STUID left outer join wsadmin.TB_HSE_COMMON a1 on a1.SUID=a.SUID and a1.CODE_ID=a.DOCTYPE and a1.TB_ID='TVLDOC' where a.SCHYEAR=? and a.CLASSLVL=? order by a.SCHLVL, a.SCHSESS, a.CLASSLVL, a.CLASSCODE, a.CLASSNO