2009年4月17日 星期五

列舉資料比對

如何,在以逗點分隔的列舉資料內,找出特定ID值.
例如, 找出以下 remark 欄位資料,有值為 c, 而不是cd者.

ITEM REMARK
---------- -------------
aaa a,b
bbb b,d
ccc a, b ,c ,d
ddd ab,cd,e
 
方法:
1. 消除空白
2. 前後包逗點
3. 利用like比對資料, 如下,
 
select item, remark
from tb
where (','|| replace(remark,' ','') || ',') like ('%,c,%');
 
ITEM REMARK
---------- ------------
ccc a, b ,c ,d

 
Note: 進階一點,還可以將like的對象,與其他Table欄位關聯,像MySQL的例子這樣子...
SELECT B.item, sum(A.money) as A_money
FROM B, A
WHERE CONCAT(',', B.nos, ',') Like CONCAT('%,', A.id, ',%')
GROUP BY B.item;

2009年4月9日 星期四

MSN 9.0 移除方法

MSN 9.0 免安裝版無法移除的解決方法

1. 使用 Windows Installer CleanUp 公用程式,清除 Windows Installer 資料庫中的項目。
a. 下載並安裝 Windows Installer CleanUp 公用程式。
url:http://support.microsoft.com/default.aspx?scid=kb;zh-tw;290301
b. 啟動公用程式,再按一下公用程式所找到的任何 Messenger 項目,然後按一下 [移除]。

2. 安裝(或使用)其他版本的 MSN Messenger
a. Messenger 最新版本 http://get.live.com/messenger
b. 若原本的舊版本 MSN 仍在系統內, 利用 regedit 搜尋所有當初 msn 9.0 的安裝路徑,
並手動刪除之(滿多的呢), 然後執行舊版本 MSN, 即可恢復正常.

SQL 各季日期統計

判斷資料是屬於哪一季的,然後分別予以加總,
年度開始日期 : trunc(sysdate,'Y')
第一季的結束日期 : add_months(trunc(sysdate,'Y'),3 )-1
...
第四季的結束日期 : add_months(trunc(sysdate,'Y'),12)-1

select UNIT,
sum(case when txdate< trunc(sysdate,'Y') then AMT else 0 end) BeginAMT,
sum(case when txdate<=(add_months(trunc(sysdate,'Y'),3 )-1) then AMT else 0 end) Q1,
sum(case when txdate<=(add_months(trunc(sysdate,'Y'),6 )-1) then AMT else 0 end) Q2,
sum(case when txdate<=(add_months(trunc(sysdate,'Y'),9 )-1) then AMT else 0 end) Q3,
sum(case when txdate<=(add_months(trunc(sysdate,'Y'),12)-1) then AMT else 0 end) Q4
from TABLENAME
where txdate <= sysdate
group by UNIT;

2009年3月24日 星期二

自寫 rownum 的方法

Oracle SQL有個 rownum 的內建功能, 可以將select 的結果自動編號.


例如:找出以下表格欄位TEST1.L為偶數的資料列, 並給予編號如下,
 
select rownum, L, P, Q from test1 where mod(L,2)=0;
 
ROWNUM L P Q
--------- --------- - ---------
1 2 B 2
2 4 C 3
3 6 A 3
4 8 G 3


其實也可以用以下SQL語法,達到相同的目的,
 
select count(y.L) my_rownum, x.L, x.P, x.Q
from test1 x, test1 y
where x.L >= y.L
and mod(x.L,2)=0 --->
and mod(y.L,2)=0 ---> 注意:x,y條件皆相同
group by x.L, x.P, x.Q;
 
MY_ROWNUM L P Q
--------- --------- - ---------
1 2 B 2
2 4 C 3
3 6 A 3
4 8 G 3
 
PS:這種自身join的方法,也或許可以用在其他資料庫或不支援rownum的情況.
 
再加一個範例: 相同x.cus_id, 按照 x.risk,x.bra_id,x.pr_rank_name,x.pro_name 排名
 
select count(y.cus_id) as num,
x.cus_id,x.risk,x.bra_id,x.pr_rank_name,x.pro_name
from aaa x, aaa y
where x.cus_id = y.cus_id
and ((x.risk > y.risk) or
((x.risk = y.risk) and (x.bra_id > y.bra_id)) or
((x.risk = y.risk) and (x.bra_id = y.bra_id) and (x.pr_rank_name > y.pr_rank_name)) or
((x.risk = y.risk) and (x.bra_id = y.bra_id) and (x.pr_rank_name = y.pr_rank_name) and (x.pro_name > y.pro_name )) or
((x.risk = y.risk) and (x.bra_id = y.bra_id) and (x.pr_rank_name = y.pr_rank_name) and (x.pro_name = y.pro_name ))
)
group by x.cus_id,x.risk,x.bra_id,x.pr_rank_name,x.pro_name

2009年3月23日 星期一

各種免費網路資源

免費資源:
http://www.slime.com.tw/freeResource.htm

免費的網路傳檔硬碟: (單檔限制/刪檔時限/語系/註冊)
file dropper 檔案上傳 (5G/30天/英文/不需註冊): http://www.filedropper.com/
FlyUpload 免費網路硬碟(2G/30天/英文/不需註冊): http://www.flyupload.com/
iFile.it 免費網路硬碟(100M/30天/繁中/不需註冊): http://ifile.it/
MediaFire (100M/永不刪檔/英文/免費註冊): http://www.mediafire.com/
BaDonGo(1G/永不刪檔/多語系/免費註冊): http://www.badongo.com/

免費的貼圖空間:
XS.To: http://xs.to/
http://xs537.xs.to/xs537/09120/c15300885.gif
Pict.com: http://www.pict.com/
http://img2.pict.com/ee/1a/1f/d8c4219dc8d580b4f3519f4ae7/wrpgY/c15300.gif

轉換工具 - 網路資源

PDF Converter 提供線上 PDF 與 Office 文件(網頁文件) 的相互格式轉換:
http://www.freepdfconvert.com/

Remove PDF passwords and restrictions (such as printing, copying text, etc.)
http://freemypdf.com/

Super Screenshot 線上網頁抓取工具 :
http://www.superscreenshot.com/
PS: 測試結果, 大致都不錯, 只是部落格程式框的圖片位置有稍微跑掉,可惜.