Thursday, June 23, 2011

အပလာသခ်ာၤ အင္ အိုရီကယ္။

အပလာသခ်ာၤ အင္ အိုရီကယ္။

Applied Maths ကို ခပ္ၾကမ္းၾကမ္းဘာသာျပန္ပစ္လိုက္တာ။

သခ်ာၤကို Set ေတြအမ်ားၾကီးေလ႔လာခဲ႔တာ ငယ္ကတည္းပဲ။ ကိုယ္႔ကိုယ္ကိုယ္လည္း သခ်ာၤအေတာ္ေလးေတာ္တယ္ထင္မိတာ။ ဒီေန႕ေတာ႔ စာထဲမွာသင္ခဲ႔တာကို ဘယ္လိုျပန္အသံုးခ်ရမလဲဆိုတာမွာညံ႕တယ္လုိ႕သိရတယ္။

Database ေတြဟာ သခ်ာၤရဲ႕ Set theroy ေတြေပၚမူတည္ျပီးတည္ေဆာက္ထားပါတယ္။
Intersect ေတြ Union ေတြ Minus ေတြရိွပါတယ္။

ဒီေန႕လိုခ်င္တာက NRIC တူျပီး PLAN မတူတဲ႔ policies ေတြပါ။

PLAN ေရာ NRIC ပါတူတာဆိုရင္ ဒီလုိယူလို႕ရပါတယ္။

select * from table_name where (NRIC,PLAN) in
(
('NRIC1','PLAN1'),
('NRIC2','PLAN2'),
('NRIC3','PLAN3'),
..etc
);


တစ္ခုတူျပီးတစ္ခုမတူတာကို ၾကေတာ႔ in နဲ႕လုပ္လုိ႕မရဘူးဗ်။

အဲဒီေတာ႔ excel မွာပဲ query ကို genereate လုပ္ျပီး၊ တစ္ေၾကာင္းစီ result ကို ျပန္ေပါင္းရေကာင္းမလားစဥ္းစားတယ္။ လိုင္း ၅၀၇ လိုင္းေလာက္ လုပ္ရမယ္။

ေနာက္ေတာ႔ ေဘးနားက တရုတ္ကိုေမးၾကည္႕တယ္။ သူလည္းမရဘူးလုိ႕ေျပာတယ္။ ျပီးေတာ႔မွ ထပ္စဥ္းစားျပီး MINUS နဲ႕လုပ္ရင္ရမယ္ထင္တယ္ဆိုျပီး formula ျပန္ေရးၾကတယ္။ သူစဥ္းစားတာမွန္တယ္။

အမွန္ကရတယ္။ ရုတ္တရတ္စဥ္းစားမိဖုိ႕ခက္တာပါ။ NIRC တူတာေတြကို ယူလိုက္ျပီး NRIC ေရာ PLAN ပါတူတာကို ျပန္ႏႈတ္လိုက္ရင္လိုခ်င္တဲ႔အေျဖကိုရပါတယ္။

select NRIC from tableA where NIC in (
'NRIC1',
'NRIC2',
'NRIC3',
....
)MINUS
select NRIC from tableA where (NRIC,PLAN) in
(
('NRIC1','PLAN1'),
('NRIC2','PLAN2'),
('NRIC3','PLAN3'),
..etc
);

Set ေတြကို ပံုဆြဲၾကည္႕ရင္ လြယ္ေပမယ္႔ တကယ္ၾကံဳလာေတာ႔ ရုတ္တရတ္စဥ္းစားလုိ႕မထြက္တတ္ဘူးဆိုတာကိုေျပာခ်င္တာပါ။ MINUS မွာလည္း တစ္ခ်ိဳ႕ျပႆနာေလးေတြရိွပါေသးတယ္။ လုပ္ရင္းကိုင္ရင္းပိုျပီးေကာင္းတဲ႔ query ေတြေရးတတ္ဖုိ႕ေလ႔လာေနတုန္းပါပဲ။

ေနာက္တစ္ခုက Excel တစ္ခုလံုး အသံုးခ်နည္းဆိုျပီးေရးရမလားမသိဘူး။ Excel မွာလုပ္လုိ႕ရတာေတြအမ်ားၾကီးပဲရိွေသးတယ္။ အထူးသျဖင္႔ query ေတြကို sql format ေရးဖုိ႕ concat လုပ္ျပီး drag ဆြဲသြားလုိက္တာတုိ႕ဘာတုိ႕၊ သိပ္လြယ္တယ္။ ျမန္တယ္။

double qoutes ေပၚေအာင္ double code 4 ခုေရးရတာလည္း ရယ္စရာေကာင္းတယ္။ တစ္ခုက escape character အေနနဲ႕သံုးတာပါ။ ေနာက္ျပီး oracle မွာ နာမည္မွာ single quote ပါရင္ ဒီအတိုင္းထည္႕ေရးလို႕မရဘဲ || ေတြနဲ႕ concat လုပ္ဖုိ႕လုိတာကို excel မွာကတည္းက replace all လုပ္ပစ္လုိက္လုိ႕ရပါတယ္။ Excel ကို မ်ားမ်ားသံုးရင္ query ေတြ တလေဟာေရးရတဲ႔ေနရာေတြမွာ အေတာ္ေလးသက္သာပါတယ္။ TRIM လုပ္ဖုိ႕တုိ႕၊ substring ရွာဖုိ႕တုိ႕ကိုလည္း Excel မွာပါျပီးသားျဖစ္တဲ႔အတြက္ formula တစ္ခုေလာက္ေရးျပီး query ေတြ တရေဟာ drag လုပ္ႏုိင္ပါျပီ။

ကိုယ္သက္သာဖုိ႕ဆိုတာကိုယ္႔တာ၀န္ပါပဲ။
ဘာမွမသိလို႕ ခက္တဲ႔နည္းေတြနဲ႕လုပ္ေနရတာမ်ိဳး ဘယ္ေတာ႔မွမျဖစ္ေစနဲ႕။

ကိုယ္႔ထက္ေတာ္တဲ႔သူေတြသက္သာေနတာကိုလည္း အလကားေနအထင္မေသးနဲ႕။ သူတို႕ဆီက productive ျဖစ္တာေလးေတြေလ႔လာပါ။

Lazy developers rule the creation of the effective ways.

No comments: