วันศุกร์ที่ 2 มิถุนายน พ.ศ. 2560
สร้างข้อมูลสำหรับสร้างกราฟรายปี Database for Chart
<DATABASE>-----------------------------------------------------------------------------------------------
ตารางข้อมูลแสดงข้อมูลทุกปี
<CODE MYSQL >--------------------------------------------------------------------------------------------
ต้องการแสดงผลข้อมูลของแต่ล่ะปี เพื่อนำไป Plot Graph โดยจะต้องแยกออกเป็นปี ๆ ที่ต้องการ
SELECT now_for.r_date, now_for.fore24 as now_year, l1_for.l1_fore24 as l1_year, l2_for.l2_fore24 as l2_year, l3_for.l3_fore24 as l3_year,
lmax_fore24.lmax_fore24 as max18_year, lmin_fore24.lmin_fore24 as min35_year, l_curve.uppers, l_curve.lowers
FROM
(
SELECT
sk24_forebay5y.r_date,
sk24_forebay5y.fore24
FROM
sk24_forebay5y
WHERE
YEAR(sk24_forebay5y.r_date) = YEAR(CURDATE())) as now_for
RIGHT JOIN(
(SELECT
sk24_forebay5y.r_date,
sk24_forebay5y.fore24 as l1_fore24
FROM
sk24_forebay5y
WHERE
YEAR(sk24_forebay5y.r_date) = YEAR(CURDATE())-1) as l1_for
)ON(
DayOfYear(now_for.r_date)= DayOfYear(l1_for.r_date)
)
RIGHT JOIN(
(SELECT
sk24_forebay5y.r_date,
sk24_forebay5y.fore24 as l2_fore24
FROM
sk24_forebay5y
WHERE
YEAR(sk24_forebay5y.r_date) = YEAR(CURDATE()) - 2) as l2_for
)ON(
DayOfYear(l1_for.r_date)= DayOfYear(l2_for.r_date)
)
RIGHT JOIN(
(SELECT
sk24_forebay5y.r_date,
sk24_forebay5y.fore24 as l3_fore24
FROM
sk24_forebay5y
WHERE
YEAR(sk24_forebay5y.r_date) = YEAR(CURDATE()) - 3) as l3_for
)ON(
DayOfYear(l2_for.r_date)= DayOfYear(l3_for.r_date)
)
RIGHT JOIN(
(SELECT
sk24_forebay5y.r_date,
sk24_forebay5y.fore24 as lmax_fore24
FROM
sk24_forebay5y
WHERE
YEAR(sk24_forebay5y.r_date) = 1975) as lmax_fore24
)ON(
DayOfYear(l3_for.r_date)= DayOfYear(lmax_fore24.r_date)
)
RIGHT JOIN(
(SELECT
sk24_forebay5y.r_date,
sk24_forebay5y.fore24 as lmin_fore24
FROM
sk24_forebay5y
WHERE
YEAR(sk24_forebay5y.r_date) = 1992) as lmin_fore24
)ON(
DayOfYear(l3_for.r_date)= DayOfYear(lmin_fore24.r_date)
)
JOIN(
SELECT rulecurve.d_year,
rulecurve.upper as uppers,
rulecurve.lower as lowers
FROM rulecurve ) as l_curve
ON (l_curve.d_year = DayOfYear(l3_for.r_date))
ORDER BY
l3_for.r_date ASC
<RESULT MYSQL>---------------------------------------------------------------------------------------
วันพฤหัสบดีที่ 27 เมษายน พ.ศ. 2560
mysql หาวันสุดท้ายของเดือนที่แล้ว
date = LAST_DAY(DATE_ADD(cutdate(), INTERVAL -1 MONTH))
*กรณีเป็นวันใช้ DAY
** กรณีเป็นปีใช้ YEAR
** -1 คือย้อนหลัง 1 ค่า +1 คือไปข้างหน้า 1 ค่า
*กรณีเป็นวันใช้ DAY
** กรณีเป็นปีใช้ YEAR
** -1 คือย้อนหลัง 1 ค่า +1 คือไปข้างหน้า 1 ค่า
วันอังคารที่ 31 มกราคม พ.ศ. 2560
ตั้งแค่แสดงวันภาษาไทย และแสดงหน่วยทศนิยม
แสดงวันที่ไทย
เช่น 31 มกราคม 2560
function ThaiEachDate($vardate="") {
$_month_name = array("01"=>"มกราคม", "02"=>"กุมภาพันธ์", "03"=>"มีนาคม",
"04"=>"เมษายน", "05"=>"พฤษภาคม", "06"=>"มิถุนายน",
"07"=>"กรกฎาคม", "08"=>"สิงหาคม", "09"=>"กันยายน",
"10"=>"ตุลาคม", "11"=>"พฤศจิกายน", "12"=>"ธันวาคม");
$yy =substr($vardate,0,4);$mm =substr($vardate,5,2);$dd =substr($vardate,8,2);
$yy += 543;
if ($yy==543){
$dateT = "-";
}else{
$dateT=$dd ." ".$_month_name[$mm]." ".$yy;
}
return $dateT;
}
แสดง
31-01-60
function ThaiEachDate2($vardate="") {
$_month_name = array("01"=>"01", "02"=>"02", "03"=>"03",
"04"=>"04", "05"=>"05", "06"=>"06",
"07"=>"07", "08"=>"08", "09"=>"09",
"10"=>"10", "11"=>"11", "12"=>"12");
$yy =substr($vardate,2,2);$mm =substr($vardate,5,2);$dd =substr($vardate,8,2);
$yy += 43;
if ($yy==43){
$dateT = "-";
}else{
$dateT=$dd ." ".$_month_name[$mm]." ".$yy;
}
return $dateT;
}
แสดง
31-ม.ค.-60
function ThaiEachDate1($vardate="") {
$_month_name = array("01"=>"ม.ค.", "02"=>"ก.พ.", "03"=>"มี.ค.",
"04"=>"เม.ย.", "05"=>"พ.ค.", "06"=>"มิ.ย.",
"07"=>"ก.ค.", "08"=>"ส.ค.", "09"=>"ก.ย.",
"10"=>"ต.ค.", "11"=>"พ.ย.", "12"=>"ธ.ค.");
$yy =substr($vardate,2,2);$mm =substr($vardate,5,2);$dd =substr($vardate,8,2);
$yy += 43;
if ($yy==43){
$dateT = "-";
}else{
$dateT=$dd ." ".$_month_name[$mm]." ".$yy;
}
return $dateT;
}
-----------------------------------------------------------------------------------------------------------------------
แสดงหน่วยทศนิยม หลาย ๆ ตำแหน่ง
function digi($data_digi,$show=0,$dot=0)
{
if($data_digi==0 and $show==0)
{$digi="";}
else
{$digi=number_format ($data_digi,$dot,'.',',');}
return $digi;
}
function digi2($data_digi)
{
$digi2=number_format ($data_digi,2,'.',',');
return $digi2;
}
function digi3($data_digi)
{
$digi3=number_format ($data_digi,3,'.',',');
return $digi3;
}
function digi4($data_digi){
$digi4=number_format ($data_digi,4,'.',',');
return $digi4;
}
เช่น 31 มกราคม 2560
function ThaiEachDate($vardate="") {
$_month_name = array("01"=>"มกราคม", "02"=>"กุมภาพันธ์", "03"=>"มีนาคม",
"04"=>"เมษายน", "05"=>"พฤษภาคม", "06"=>"มิถุนายน",
"07"=>"กรกฎาคม", "08"=>"สิงหาคม", "09"=>"กันยายน",
"10"=>"ตุลาคม", "11"=>"พฤศจิกายน", "12"=>"ธันวาคม");
$yy =substr($vardate,0,4);$mm =substr($vardate,5,2);$dd =substr($vardate,8,2);
$yy += 543;
if ($yy==543){
$dateT = "-";
}else{
$dateT=$dd ." ".$_month_name[$mm]." ".$yy;
}
return $dateT;
}
แสดง
31-01-60
function ThaiEachDate2($vardate="") {
$_month_name = array("01"=>"01", "02"=>"02", "03"=>"03",
"04"=>"04", "05"=>"05", "06"=>"06",
"07"=>"07", "08"=>"08", "09"=>"09",
"10"=>"10", "11"=>"11", "12"=>"12");
$yy =substr($vardate,2,2);$mm =substr($vardate,5,2);$dd =substr($vardate,8,2);
$yy += 43;
if ($yy==43){
$dateT = "-";
}else{
$dateT=$dd ." ".$_month_name[$mm]." ".$yy;
}
return $dateT;
}
แสดง
31-ม.ค.-60
function ThaiEachDate1($vardate="") {
$_month_name = array("01"=>"ม.ค.", "02"=>"ก.พ.", "03"=>"มี.ค.",
"04"=>"เม.ย.", "05"=>"พ.ค.", "06"=>"มิ.ย.",
"07"=>"ก.ค.", "08"=>"ส.ค.", "09"=>"ก.ย.",
"10"=>"ต.ค.", "11"=>"พ.ย.", "12"=>"ธ.ค.");
$yy =substr($vardate,2,2);$mm =substr($vardate,5,2);$dd =substr($vardate,8,2);
$yy += 43;
if ($yy==43){
$dateT = "-";
}else{
$dateT=$dd ." ".$_month_name[$mm]." ".$yy;
}
return $dateT;
}
-----------------------------------------------------------------------------------------------------------------------
แสดงหน่วยทศนิยม หลาย ๆ ตำแหน่ง
function digi($data_digi,$show=0,$dot=0)
{
if($data_digi==0 and $show==0)
{$digi="";}
else
{$digi=number_format ($data_digi,$dot,'.',',');}
return $digi;
}
function digi2($data_digi)
{
$digi2=number_format ($data_digi,2,'.',',');
return $digi2;
}
function digi3($data_digi)
{
$digi3=number_format ($data_digi,3,'.',',');
return $digi3;
}
function digi4($data_digi){
$digi4=number_format ($data_digi,4,'.',',');
return $digi4;
}
วันพฤหัสบดีที่ 1 ธันวาคม พ.ศ. 2559
การเชื่อมตาราง Left Join 1 to 2 Table
การเชื่อมตาราง 1 ไป 2 ตาราง โดยหาผลรวมของตารางย่อย
1. Table Person
2. Table Pesron_train
3. Table Person_work
SELECT
u.ids,
u.names_en,
(SELECT COUNT(b.ids) FROM person_train b WHERE b.ids = u.ids) as ctrain,
(SELECT COUNT(m.ids) FROM person_work m WHERE m.ids = u.ids) as cwork
FROM
person as u
ORDER BY u.ids
ผลลัพธ์
วันพฤหัสบดีที่ 17 มีนาคม พ.ศ. 2559
ปรับเปรียนการแสดงผลของ MYSQL Transpose จากแนวตั้ง เป็นแนวนอน
ตารางเดิม
rdate ปี-เดือน | infl |
--------------------------------------
2010-1 | 20
2010-2 | 40
2010-3 | 50
----------------------------------------
MYSQL CODE
SELECT
year(r_date) + 543 AS `year`,
SUM(CASE WHEN month(r_date) = '01' THEN format(p.infl, 2) ELSE 0 END) AS jan,
SUM(CASE WHEN month(r_date) = '02' THEN format(p.infl, 2) ELSE 0 END) AS feb,
SUM(CASE WHEN month(r_date) = '03' THEN format(p.infl, 2) ELSE 0 END) AS mar,
SUM(CASE WHEN month(r_date) = '04' THEN format(p.infl, 2) ELSE 0 END) AS apr,
SUM(CASE WHEN month(r_date) = '05' THEN format(p.infl, 2) ELSE 0 END) AS may,
SUM(CASE WHEN month(r_date) = '06' THEN format(p.infl, 2) ELSE 0 END) AS jun,
SUM(CASE WHEN month(r_date) = '07' THEN format(p.infl, 2) ELSE 0 END) AS jul,
SUM(CASE WHEN month(r_date) = '08' THEN format(p.infl, 2) ELSE 0 END) AS aug,
SUM(CASE WHEN month(r_date) = '09' THEN format(p.infl, 2) ELSE 0 END) AS sep,
SUM(CASE WHEN month(r_date) = '10' THEN format(p.infl, 2) ELSE 0 END) AS oct,
SUM(CASE WHEN month(r_date) = '11' THEN format(p.infl, 2) ELSE 0 END) AS nov,
SUM(CASE WHEN month(r_date) = '12' THEN format(p.infl, 2) ELSE 0 END) AS dec,
SUM(CASE WHEN year(r_date) = year(r_date) THEN format(p.infl, 2) ELSE 0 END) AS total
FROM
plantreal24
WHERE
YEAR(r_date) BETWEEN '1974' AND year(CURDATE()) ** ถึงปีปัจจุบันนี้
GROUP BY
year(r_date)
order by YEAR(r_date)
ผลลัพธ์
Year | gjan | gfeb | gmar
--------------------------------------
2010 | 20 | 40 | 50
----------------------------------------
--------------------------------------
2010 | 20 | 40 | 50
----------------------------------------
วันเสาร์ที่ 13 มิถุนายน พ.ศ. 2558
ต่อมือถือ Android แล้วหาไม่เจอ MTP USB device not install
ปัญหาที่เจอและเครื่องฟ้องขึ้นมาก็คือ MTP USB device not install หรือมีปัญหา หรือว่ากาผิด และผลก็คือ เครื่องคอมมองไม่เห็นโทรศัพท์ของเราเลยครับ
หาทางแก้อยู่นานมาก ก็ไม่เจอทางออกสักที จนในที่สุด วันนี้ก็ได้เจอกับทางออกครับ
ซึ่งเป็นวิธีการแก้ปัญหาด้วยการเข้าไปแก้ไขการตั้งค่าใน Registry โดยทำตามขั้นตอน ดังนี้ครับ
1. ขั้นตอนแรกเริ่มต้นด้วยการ Run the registry editor (ด้วยการพิมพ์ “regedit” ใน command-line หรือว่าช่อง Run ครับ)
2. ลดความเสี่ยงกรณีมีปัญหาด้วยการ Backup ค่า registry ปัจจุบันด้วยการไปที่ (File -> Export) แล้ว Save เก็บไว้ครับ
3. ให้เข้าไปในโฟลเดอร์ตามลำดับดังนี้ : HKEY_LOCAL_MACHINE / SYSTEM / CurrentControlSet / Control / Class
4. ทางด้านซ้ายให้มองหา {EEC5AD98-8080-425F-922A-DABF3DE3F69A} และคลิ๊กเข้าไป
5. ในช่องด้านขวาให้มองหาค่าที่ขึ้นต้นด้วย “Upper…” แล้วจัดการลบมันซะ
6. หลังจากนั้นให้ถอดมือถือไอโฟน หรือว่า โซนี เอ็กซ์พีเรียออก
7. รีสตาร์ท เครื่อง 1 ครั้ง
8. จากนั้น เมื่อเปิดเครื่องเสร็จแล้ว รอให้บูทเสร็จและก็ลองเสียบดู คราวนี้โผล่หมดเลยครับ ในช่อง Portable device ทั้งของ iPhone และของ Sony Xperia ครับ
9. เริ่มก็อปวางและก็ลงเพลงสำหรับ Xperia ได้เลยครับ
วันจันทร์ที่ 18 พฤษภาคม พ.ศ. 2558
การหาผลต่างระหว่างแถว โดยการลบกัน Table Row Diff
การหาผลต่างระหว่างตาราง
SELECT mt1.ids,
mt1.dates,
mt1.times,
mt1.waterflow,
IFNULL(mt1.waterflow - mt2.waterflow, 0) as Diffs
FROM nsd mt1
LEFT JOIN nsd mt2 ON mt2.ids =
(SELECT MAX(ids) FROM nsd mt3 WHERE mt3.ids < mt1.ids AND
mt3.dates BETWEEN '20150519' AND '20150519')
WHERE mt1.dates BETWEEN '20150519' AND '20150519'
ORDER BY mt1.ids
SELECT mt1.ids,
mt1.dates,
mt1.times,
mt1.waterflow,
IFNULL(mt1.waterflow - mt2.waterflow, 0) as Diffs
FROM nsd mt1
LEFT JOIN nsd mt2 ON mt2.ids =
(SELECT MAX(ids) FROM nsd mt3 WHERE mt3.ids < mt1.ids AND
mt3.dates BETWEEN '20150519' AND '20150519')
WHERE mt1.dates BETWEEN '20150519' AND '20150519'
ORDER BY mt1.ids
สมัครสมาชิก:
บทความ (Atom)




