SQL2000里有一資料庫mydata,需要操作資料庫表my_result。欄位如下
id name result1 result2 result3
1 張三
2 李四
3 王五
... ....
n z
result1是第一次成績,result2是第二次,result3是第三次成績
現在我有一個excel,只有姓名和某一次成績,相當于我要更新三次才能把以上的表內容填完。
現在問題來了,我每一次的excel對應的姓名順序和如上的資料庫表姓名順序不一樣,要如何操作呢?
uj5u.com熱心網友回復:
寫UPDATE 陳述句額可以先取出 EXCEL 內資料
然后再更新到SQL
sqlstr := 'update mydata set result2 = %f where name = ''%s'' ' ;
uj5u.com熱心網友回復:
其實不需要糾結順序是吧,它自動去匹配?uj5u.com熱心網友回復:
其實不需要糾結順序是吧,它自動去匹配?如果用我這樣的陳述句, 不用管順序, where 去找記錄更新就好,但是更新資料多的話,會比較慢的。
界面需要用進度條顯示。
uj5u.com熱心網友回復:
采用條件陳述句執行,資料庫自身功能去做應該的操作。uj5u.com熱心網友回復:
1,資料庫采用3個臨時表存盤三次成績,2,查詢陳述句中使用group by ,具體你看下幫助
3,查詢結果寫入my_result
uj5u.com熱心網友回復:
給個思路:repeat // 通過EXCEL讀取一資料
姓名=?
成績=?
打開表
while not Eof do //表回圈
找到同姓名行
if result1='' 加入
否 if result2='' 加入
否 if result3='' 加入
next
end;
until 無資料
uj5u.com熱心網友回復:
動態生成欄位名就可以了,不過也是得理新三次sqlstr := format('update mydata set %s = %f where name = ''%s'' ',[resultfieldname,resultfieldvalue,studentname] );
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/84783.html
標籤:數據庫相關
