看板 Database 關於我們 聯絡資訊
我不確定丟在網頁上的情況. 但如果你要長出空白的紀錄, 應該要有個table去做比對 建一個table, 一個欄位 date, 就只放20090301~20090331, 用它來讓你的資料outer join 資料部分的計算, 我試過select case when else 的語法是ok的 不知你的不適合是指哪方面. SELECT b, a1, SUM (c) c FROM (SELECT a, CASE WHEN (a < '20090301') THEN '20090301' ELSE a END AS a1, b, c FROM test) GROUP BY b, a1 CREATE TABLE TEST ( A VARCHAR2(8 BYTE), B VARCHAR2(6 BYTE), C VARCHAR2(10 BYTE) ) Insert into TEST (A, B, C) Values ('20040210', '200903', '100'); Insert into TEST (A, B, C) Values ('20081020', '200903', '200'); Insert into TEST (A, B, C) Values ('20090301', '200903', '100'); Insert into TEST (A, B, C) Values ('20090305', '200903', '100'); Insert into TEST (A, B, C) Values ('20060405', '200903', '200'); Insert into TEST (A, B, C) Values ('20060304', '200903', '300'); COMMIT; ※ 引述《amoebaer (變形蟲)》之銘言: : 大家好 目前小弟是剛接觸oracle 想要撈出相同天數的資料加總 : 但目前有個問題是 如果在某個月份以前的資料全歸在當月份的第一天 : ex 我要做三月份每天的統計 但是bill_date的日期有可能是2006年的 : 這樣我就必須把這資料加總在 3月1日這天 其它三月份天數的資料 : 就各自加總各自的日期 ex. 3月2日 3月3日...... : 資料表的格是就像下圖 : bill_date revenue_year total_fee : ------------------------------------- : 20070210 200903 100 : 20081020 200903 200 : 20090301 200903 100 : 20090305 200903 100 : 20060405 200903 200 : 20060304 200903 300 : . : . : 假如我是算200903這月份 但bill_date有可能是20070210 我要把他歸在 20090301 : 所以希望呈現出來的是像下面這樣 : revenue_year date total : ------------------------------------- : 200903 20090301 900 : 200903 20090302 0 : 200903 20090303 0 : 200903 20090304 0 : 200903 20090305 100 : 請問 : 我需要建另一個table存這些資料嗎 因為原本的table沒有date這欄位 : 因為最後是要撈這些資料出來 在網頁上畫圖 是有建另一個table比較方便嗎? : 或是cursor直接撈 然後去呈現 因為每天都需要更新 還是有其它比較好的方法呢? : 今天有用過case when else end 但好像也不太適合 麻煩大家了!! : 感激不盡! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.250.190.113