RSS   



  可打印版本 | 推薦給朋友 | 訂閱主題 | 收藏主題 | 純文字版  


 


 
主題: [求助] [求助]請高手教我SQL語法問題   字型大小:||| 
kaezorr
鐵驢友〔初級〕
等級: 4
小威

今日心情

 . 積分: 40
 . 精華: 1
 . 文章: 110
 . 收花: 189 支
 . 送花: 72 支
 . 比例: 0.38
 . 在線: 42 小時
 . 瀏覽: 250 頁
 . 註冊: 7207
 . 失蹤: 5449
 . AIDC
#1 : 2006-1-10 02:42 PM     全部回覆 引言回覆

我的資料庫是Oracle
概略跑一下結果有出來
不知道是不是你要的
1.Oracle有virtual column虛擬欄位ROWNUM這個可以用
2.我用case when ... else ... end
3.我是用單行子查詢把流程時間算出來的,要像你說的那樣可能要寫成StoredProcedure比較容易一些

以下是我的SQL沒有什麼修飾就po上來,包含一下囉~

/* Formatted on 2006/01/10 14:26 (Formatter Plus v4.8.5) */
SELECT tmp_id, task_name, proc_time, sche_time, exp_time,
       CASE
          WHEN exp_time - sche_time >= 0
             THEN 0
          ELSE sche_time - exp_time
       END AS suff_time
  FROM (SELECT tmp_id, task_name, proc_time,
               (SELECT SUM (proc_time)
                  FROM task
                 WHERE proc_time <= v.proc_time) sche_time, exp_time
          FROM (SELECT ROWNUM tmp_id, task_name, proc_time, exp_time
                  FROM (SELECT   task_name, proc_time, exp_time
                            FROM task
                        ORDER BY proc_time)) v)

不過這方法還有個盲點,就是 進行時間 相同的兩件工作可能會導致錯誤的結果
這部分我就沒有測試了 ^^; 有興趣可以再修改



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  訪問主頁  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
kaezorr
鐵驢友〔初級〕
等級: 4
小威

今日心情

 . 積分: 40
 . 精華: 1
 . 文章: 110
 . 收花: 189 支
 . 送花: 72 支
 . 比例: 0.38
 . 在線: 42 小時
 . 瀏覽: 250 頁
 . 註冊: 7207
 . 失蹤: 5449
 . AIDC
#2 : 2006-1-10 02:49 PM     全部回覆 引言回覆

資料表名稱 :
TASK

資料表內的欄位 :
TASK_NAME (工作:A...B...C...)
PROC_TIME (工作進行時間)
EXP_TIME (到期時間)

其他的欄位別名 :
SCHE_TIME (流程時間)
SUFF_TIME (餘裕時間)

資料庫內的資料:
點擊查看全圖

SQL執行結果:
點擊查看全圖

[kaezorr 在 2006-1-10 03:01 PM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  訪問主頁  發私人訊息  Blog  快速回覆 新增/修改 爬文標記

   

快速回覆
表情符號

更多 Smilies

字型大小 : |||      [完成後可按 Ctrl+Enter 發佈]        

溫馨提示:本區開放遊客瀏覽。
選項:
關閉 URL 識別    關閉 表情符號    關閉 Discuz! 代碼    使用個人簽名    接收新回覆信件通知
發表時自動複製內容   [立即複製] (IE only)


 



所在時區為 GMT+8, 現在時間是 2024-9-29 11:22 PM
清除 Cookies - 連絡我們 - TWed2k © 2001-2046 - 純文字版 - 說明
Discuz! 0.1 | Processed in 0.019955 second(s), 7 queries , Qzip disabled