ようこそ (Jyokoso) MY BLOG
いらっしゃいませ (hajimemashite) สำหรับผู้เข้าใหม่นะค่ะ ^^V
01 มีนาคม 2565
23 สิงหาคม 2564
Error of muji's diffuser
เช้าวันจันทร์ 23/08/2021
ทำตามที่บอก ปิดค้างเปิดใหม่ เช็ดโน่นนั่นนี่ สุดท้าย อันนี้เวิร์คสุด
เป็นเริ่มต้นที่ดีสำหรับสิ่งใหม่ๆ
เช้าวันที่แสนธรรมดาที่วันนี้คิดว่าก็คงต้องนั่งแก้งานไป เลยอยากมีไรแปลกใหม่บ้าง เลยเอาเครื่อง diffuser ของ muji มา เปิดใช้ในรอบหลายเดือน
เติมน้ำ เติม oil เรียบร้อย พอกดเปิดเท่านั้นแหล่ะ
ปี๊ด ปี๊ด ปี๊ด!!! ดับ อืม... นี่คือชีวิตโปรแกรมเมอร์ใช่ไหม ต้องแก้บัคอยู่ร่ำไป นี่มันเช้าอยู่เลยนะ
คู่มือไม่อยู่แล้ว เอาอาการไป search ในเน็ท พี่goo ก็ไม่เจอ เลยหา manual ดีนะที่เจอ
สำลี คัตเติ้ลบัต นี่แหล่ะถูไปตรงกลาง ที่เครื่องจะสั่นไอโอนิคมันมีตะกอนแหล่ะ
จบไปอย่างสวยงาม
16 มิถุนายน 2563
check dup with over partition by instead having multi subquery
WITH SUBVEN1 AS (SELECT DISTINCT MATERIAL_NO,SUPPLIER_CODEFROM SUBMAT_VENDORWHERE INTERFACE_FILE_NAME = INF_FILE_NAME_ERRAND MATERIAL_NO IS NOT NULL), CHECKDUP AS (SELECT MATERIAL_NO,SUPPLIER_CODE, count(1) over (partition by MATERIAL_NO) AS sFROM SUBVEN1)SELECT *FROM CHECKDUPWHERE s = 1;
13 กันยายน 2562
set time window sleep
set time window sleep
file.vbs
Set WshShell = WScript.CreateObject("WScript.Shell") 'create \windows\system32
Do While 1=1
WshShell.SendKeys "^%" '^ = ctrl % alt --> ASCII
WScript.Sleep 60000 '60*1000 = 60 second = 1 minutes
Loop
For SHIFT prefix with +
For CTRL prefix with ^
For ALT prefix with %
file.vbs
Set WshShell = WScript.CreateObject("WScript.Shell") 'create \windows\system32
Do While 1=1
WshShell.SendKeys "^%" '^ = ctrl % alt --> ASCII
WScript.Sleep 60000 '60*1000 = 60 second = 1 minutes
Loop
For SHIFT prefix with +
For CTRL prefix with ^
For ALT prefix with %
09 เมษายน 2562
like in sql oracle
SELECT *
FROM names
WHERE regexp_like (name , 'be|ae') ; << like in ( be, ae)
NAME
-------------------------
Baer
Abel
Raphaely
Greenberg
FROM names
WHERE regexp_like (name , 'be|ae') ; << like in ( be, ae)
NAME
-------------------------
Baer
Abel
Raphaely
Greenberg
30 กันยายน 2561
คำศัพท์ที่ใช้ใน BI มีดังต่อไปนี้
Data Warehouses
คือโครงสร้างแบบเดี่ยวที่เก็บ Cube 1 Cube หรือมากกว่านั้น โดย Data Warehouses ถูกใช้ในการพักข้อมูลที่มีการ aggregate แล้ว หรือ ใช้สำหรับอ่านอย่างเดียว (report) หรือใช้ในมุมมองข้อมูลหลักขององค์กร
Data Marts
ถูกนิยามว่าเป็น subset ของข้อมูลขนาดใหญ่ หรือพูดให้เข้าใจง่ายๆก็คือ Data Warehouses ของแต่ละแผนกนั่นเอง
Cubes
สำหรับ BI Cube ก็คือโครงสร้างข้อมูลที่ถูกใช้โดย Data Warehouses ซึ่งภายในคิวบ์ก็คือความสัมพันธ์ของตารางต่างๆ โดยคิวบ์จะจัดเก็บ dimension และ measure เอาไว้ และคิวบ์สามารถที่จะจัดเก็บข้อมูลที่มีการคำนวณไว้ล่วงหน้าก่อนแล้วก็ได้
Decision Support Systems
หรือเรียกกันว่าระบบสนับสนุนช่วยในการตัดสินใจ ในเชิงความหมายก็คือเป็นระบบที่ช่วยในการแสดงข้อมูลที่ได้จากการทำ OLTP และ OLAP cubes หรือ ทั้ง 2 อย่างก็ได้ ในเชิงธุรกิจหรือการทำงานจะเป็นระบบที่ช่วยสนับสนุนการตัดสินใจของผู้บริกหาร เช่น ระบบที่ช่วยแสดงรายงานต่างๆ เพื่อใช้สำหรับวิเคราะห์แนวโน้มการลงทุนในอนาคต ซึ่งช่วยเพิ่มโอกาสทางการแข่งขันมากขึ้นได้
Data Mining Systems
ในขณะนี้ที่ OLAP ถูกใช้ในเรื่องของการช่วยตัดสินใจข้อมูลที่มีอยู่ Data Mining จะถูกใช้ใน OLAP อีกทีหนึ่งโดย Data Mining จะช่วยหาความสัมพันธ์ที่ซ่อนเร้นอยู่ใน Cubes หรือ ข้อมูลที่มีจำนวนมากๆได้ โดยที่บางทีเราอาจไม่รู้ข้อมูลที่เรามีอยู่นั้นมีประโยชน์เพียงใด เช่น ในเดือนธันวาคมปี 2007 มีลูกค้าซื้อรถสีแดงจำนวน 2 ครั้ง เท่ากับรถสีดำโดยลูกค้าที่ซื้อนั้นจะเป็นผู้อาศัยที่อยู่ในย่านที่มีรหัสไปรษณีย์คือ 90201 ไปจนถึง 90207 โดย Data Mining จะเก็บข้อมูลที่เกิดขึ้นบ่อยๆซ้ำๆ แล้วเอามาวิเคราะห์ทำนายผล
Extract, Transform, and Load System
หรือเรียกสั้นๆว่า ETL หมายถึงขั้นตอนกระบวนการทำงานต่างๆ เพื่อนำข้อมูลจากแหล่งต่างๆเข้าสู่ Data Warehouses โดยที่
Extract - ทำหน้าที่ดึงข้อมูลจากแหล่งต่างๆเข้ามา
Transform - ทำหน้าแปลงข้อมูลที่ได้จากการ Extract มาแปลงให้อยู่ในรูปแบบที่เหมาะสม เช่น ทำ Classing, Mapping Data
Load - ทำหน้าที่นำข้อมูลเข้า Data Warehouses
Reporting Process Systems
BI Solution ส่วนใหญ่ใช้ Report มากกว่า 1 ชนิดเนื่องจากความต้องการที่ต่างกันของผู้ใช้ สิ่งสำคัญในการวางแผน BI Solution ก็คือ ต้องใช้เครื่องมือทำ report อย่างระมัดระวัง
Key Performance Indicators
หรือ KPIs หมายถึงเครื่องมือที่ใช้วัดการดำเนินหรือประเมิณงานในด้างต่างๆขององค์กร ในรูปของข้อมูลเชิงปริมาณเพื่อสะท้อนประสิทธิภาพและประสิทธิผลในการปฎิบัติงานในองค์กรนั้น
Data Warehouses
คือโครงสร้างแบบเดี่ยวที่เก็บ Cube 1 Cube หรือมากกว่านั้น โดย Data Warehouses ถูกใช้ในการพักข้อมูลที่มีการ aggregate แล้ว หรือ ใช้สำหรับอ่านอย่างเดียว (report) หรือใช้ในมุมมองข้อมูลหลักขององค์กร
Data Marts
ถูกนิยามว่าเป็น subset ของข้อมูลขนาดใหญ่ หรือพูดให้เข้าใจง่ายๆก็คือ Data Warehouses ของแต่ละแผนกนั่นเอง
Cubes
สำหรับ BI Cube ก็คือโครงสร้างข้อมูลที่ถูกใช้โดย Data Warehouses ซึ่งภายในคิวบ์ก็คือความสัมพันธ์ของตารางต่างๆ โดยคิวบ์จะจัดเก็บ dimension และ measure เอาไว้ และคิวบ์สามารถที่จะจัดเก็บข้อมูลที่มีการคำนวณไว้ล่วงหน้าก่อนแล้วก็ได้
Decision Support Systems
หรือเรียกกันว่าระบบสนับสนุนช่วยในการตัดสินใจ ในเชิงความหมายก็คือเป็นระบบที่ช่วยในการแสดงข้อมูลที่ได้จากการทำ OLTP และ OLAP cubes หรือ ทั้ง 2 อย่างก็ได้ ในเชิงธุรกิจหรือการทำงานจะเป็นระบบที่ช่วยสนับสนุนการตัดสินใจของผู้บริกหาร เช่น ระบบที่ช่วยแสดงรายงานต่างๆ เพื่อใช้สำหรับวิเคราะห์แนวโน้มการลงทุนในอนาคต ซึ่งช่วยเพิ่มโอกาสทางการแข่งขันมากขึ้นได้
Data Mining Systems
ในขณะนี้ที่ OLAP ถูกใช้ในเรื่องของการช่วยตัดสินใจข้อมูลที่มีอยู่ Data Mining จะถูกใช้ใน OLAP อีกทีหนึ่งโดย Data Mining จะช่วยหาความสัมพันธ์ที่ซ่อนเร้นอยู่ใน Cubes หรือ ข้อมูลที่มีจำนวนมากๆได้ โดยที่บางทีเราอาจไม่รู้ข้อมูลที่เรามีอยู่นั้นมีประโยชน์เพียงใด เช่น ในเดือนธันวาคมปี 2007 มีลูกค้าซื้อรถสีแดงจำนวน 2 ครั้ง เท่ากับรถสีดำโดยลูกค้าที่ซื้อนั้นจะเป็นผู้อาศัยที่อยู่ในย่านที่มีรหัสไปรษณีย์คือ 90201 ไปจนถึง 90207 โดย Data Mining จะเก็บข้อมูลที่เกิดขึ้นบ่อยๆซ้ำๆ แล้วเอามาวิเคราะห์ทำนายผล
Extract, Transform, and Load System
หรือเรียกสั้นๆว่า ETL หมายถึงขั้นตอนกระบวนการทำงานต่างๆ เพื่อนำข้อมูลจากแหล่งต่างๆเข้าสู่ Data Warehouses โดยที่
Extract - ทำหน้าที่ดึงข้อมูลจากแหล่งต่างๆเข้ามา
Transform - ทำหน้าแปลงข้อมูลที่ได้จากการ Extract มาแปลงให้อยู่ในรูปแบบที่เหมาะสม เช่น ทำ Classing, Mapping Data
Load - ทำหน้าที่นำข้อมูลเข้า Data Warehouses
Reporting Process Systems
BI Solution ส่วนใหญ่ใช้ Report มากกว่า 1 ชนิดเนื่องจากความต้องการที่ต่างกันของผู้ใช้ สิ่งสำคัญในการวางแผน BI Solution ก็คือ ต้องใช้เครื่องมือทำ report อย่างระมัดระวัง
Key Performance Indicators
หรือ KPIs หมายถึงเครื่องมือที่ใช้วัดการดำเนินหรือประเมิณงานในด้างต่างๆขององค์กร ในรูปของข้อมูลเชิงปริมาณเพื่อสะท้อนประสิทธิภาพและประสิทธิผลในการปฎิบัติงานในองค์กรนั้น
อ้างอิงจาก https://how-to-bi.blogspot.com
06 กันยายน 2561
NOCOPY
SET SERVEROUTPUT ON;
DECLARE
n NUMBER := 10;
PROCEDURE do_something (
n1 IN NUMBER,
n2 IN OUT NUMBER,
n3 IN OUT NOCOPY NUMBER) IS
BEGIN
n2 := 20;
DBMS_OUTPUT.put_line(n1); -- prints 10
n3 := 30;
DBMS_OUTPUT.put_line(n1); -- prints 30
END;
BEGIN
do_something(n, n, n);
DBMS_OUTPUT.put_line(n); -- prints 20
END;
DECLARE
n NUMBER := 10;
PROCEDURE do_something (
n1 IN NUMBER,
n2 IN OUT NUMBER,
n3 IN OUT NOCOPY NUMBER) IS
BEGIN
n2 := 20;
DBMS_OUTPUT.put_line(n1); -- prints 10
n3 := 30;
DBMS_OUTPUT.put_line(n1); -- prints 30
END;
BEGIN
do_something(n, n, n);
DBMS_OUTPUT.put_line(n); -- prints 20
END;
21 มิถุนายน 2561
delete Dupplicate
--------------------------------------delete Dupplicate---------------------------
delete FCI_TBL_PC_I_14_PI_MOVEMENT
where ( rowid,transaction_id) in (select max(rowid),transaction_id
from FCI_TBL_PC_I_14_PI_MOVEMENT
where bus_place_code = '0002'
and transaction_date between '20170801' and '20170831'
and part_no ='4N15087'
group by transaction_id)
and bus_place_code = '0002'
and transaction_date between '20170801' and '20170831'
and part_no ='4N15087'
delete FCI_TBL_PC_I_14_PI_MOVEMENT
where ( rowid,transaction_id) in (select max(rowid),transaction_id
from FCI_TBL_PC_I_14_PI_MOVEMENT
where bus_place_code = '0002'
and transaction_date between '20170801' and '20170831'
and part_no ='4N15087'
group by transaction_id)
and bus_place_code = '0002'
and transaction_date between '20170801' and '20170831'
and part_no ='4N15087'
25 พฤษภาคม 2561
ORA-00600: internal error code, arguments: [kcblasm_1],...
เกิด จาก group by ลองใส่ hint /*+ no_use_hash_aggregation */ ไว้หายจ้า
CREATE OR REPLACE FORCE VIEW "JFCI"."FCI_VIW_PC_LIV11" ("TRN_BNO", "TRN_SEG", "TRN_VOU", "TRN_DTE", "TRN_DOC_DUE", "TRN_ACC", "TRN_VENDOR", "TRN_VNAME", "TRN_DR", "TRN_CR", "TRN_DR_CURR", "TRN_CR_CURR", "TRN_CURR", "TRN_EXCH", "TRN_BL_DATE", "TRN_PMT", "TRN_NAR", "TRN_INV", "TRN_INV_DATE", "TRN_EQNO", "TRN_PAYTERM", "TRN_LOC", "TRN_SYS", "TRN_CREATE", "TRN_WHT_CODE", "TRN_WHT_BASE", "TRN_STREET", "TRN_CITY", "TRN_TAX_CODE", "TRN_PROFIT", "VOUCHER_NO", "AP_INV", "INV_NO", "FI_DOC_NUMBER", "VENDOR_CODE", "EXPORT_TYPE", "TRN_BUS_AREA") AS
SELECT /*+ no_use_hash_aggregation */ TRN_BNO,
TRN_SEG,
TRN_VOU,
TRN_DTE,
TRN_DOC_DUE,
TRN_ACC,
TRN_VENDOR,
TRN_VNAME,
SUM (TRN_DR) TRN_DR,
SUM (TRN_CR) TRN_CR,
SUM (TRN_DR_CURR) TRN_DR_CURR,
SUM (TRN_CR_CURR) TRN_CR_CURR,
TRN_CURR,
TRN_EXCH,
TRN_BL_DATE,
TRN_PMT,
TRN_NAR,
TRN_INV,
TRN_INV_DATE,
TRN_EQNO,
TRN_PAYTERM,
TRN_LOC,
TRN_SYS,
TRN_CREATE,
TRN_WHT_CODE,
TRN_WHT_BASE,
TRN_STREET,
TRN_CITY,
TRN_TAX_CODE,
TRN_PROFIT,
VOUCHER_NO,
AP_INV,
INV_NO,
FI_DOC_NUMBER,
VENDOR_CODE,
EXPORT_TYPE,
TRN_BUS_AREA
FROM ( SELECT DECODE(HD.COM_CODE,'1000','Y ','3000','K ') TRN_BNO,
' ' TRN_SEG,
DAYEND.VOUCHER_NO AS TRN_VOU,
DECODE(NVL(HD.CANCEL_DATE, ' '),' ',
TO_CHAR (TO_DATE (HD.AP_DATE, 'YYYYMMDD'),'DDMMYYYY'),
DECODE(SUBSTR(DAYEND.FI_DOC_NUMBER,1,2),'ZA' ,TO_CHAR (TO_DATE (SUBSTR(HD.CANCEL_DATE,1,8), 'YYYYMMDD'),'DDMMYYYY'),HD.CANCEL_DATE)) TRN_DTE,
hd.inv_date TRN_DOC_DUE,
ITEM.GLACCOUNT AS TRN_ACC,
HD.VENDOR_CODE AS TRN_VENDOR,
VEN.VENDOR_NAME AS TRN_VNAME,
ITEM.DC_INDICATOR DC_INDICATOR,
DECODE(ITEM.DC_INDICATOR,'D',ITEM.AMOUNT_LOC,0) TRN_DR,
DECODE(ITEM.DC_INDICATOR,'C',ITEM.AMOUNT_LOC,0) TRN_CR,
DECODE(ITEM.DC_INDICATOR,'D',ITEM.AMOUNT_DOC,0) TRN_DR_CURR,
DECODE(ITEM.DC_INDICATOR,'C',ITEM.AMOUNT_DOC,0) TRN_CR_CURR,
DECODE(NVL(HD.DOC_CURR,' '),' ','THB',HD.DOC_CURR) TRN_CURR,
HD.EXCH_RATE AS TRN_EXCH,
DECODE(SIGN(LENGTH(NVL(HD.BILL_DATE,' '))-8),1,
TO_CHAR(TO_DATE(HD.BILL_DATE, 'YYYYMMDD'),'DDMMYYYY'),
HD.BILL_DATE) TRN_BL_DATE,
VEN.PAY_METH AS TRN_PMT,
'' AS TRN_NAR,
DAYEND.INV_NO AS TRN_INV,
TO_CHAR (TO_DATE (HD.INV_DATE, 'YYYYMMDD'), 'DDMMYYYY') AS TRN_INV_DATE,
' ' AS TRN_EQNO,
VEN.PAY_TERM AS TRN_PAYTERM,
CASE
WHEN HD.PLANT_CODE = 'D'
THEN
'LCB2'
WHEN HD.PLANT_CODE = 'H'
THEN
'LCB4'
WHEN HD.PLANT_CODE = 'F'
THEN
'LCB1'
WHEN HD.PLANT_CODE = 'G'
THEN
'LCB3'
WHEN HD.PLANT_CODE = 'B'
THEN
'MEC'
WHEN HD.PLANT_CODE = 'X'
THEN
'LCB2'
WHEN NVL (HD.PLANT_CODE, ' ') = ' '
AND HD.COM_CODE = '3000'
THEN
'MEC'
WHEN NVL (HD.PLANT_CODE, ' ') = ' '
AND HD.COM_CODE = '1000'
AND HD.BUS_PLACE_CODE = '0009'
THEN
'LCB3'
WHEN NVL (HD.PLANT_CODE, ' ') = ' '
AND HD.COM_CODE = '1000'
AND HD.BUS_PLACE_CODE = '0002'
THEN
'LCB2'
WHEN NVL (HD.PLANT_CODE, ' ') = ' '
AND HD.COM_CODE = '1000'
AND HD.BUS_PLACE_CODE = '0013'
THEN
'LCB4'
END
AS TRN_LOC,
TO_CHAR (SYSDATE, 'DDMMYYYY') AS TRN_SYS,
HD.CREATED_BY AS TRN_CREATE,
HD.VAT_CODE AS TRN_WHT_CODE,
0 AS TRN_WHT_BASE,
'' AS TRN_STREET,
'' AS TRN_CITY,
'' AS TRN_TAX_CODE,
NVL (BOI.PROFIT, ' ') AS TRN_PROFIT,
DAYEND.VOUCHER_NO AS VOUCHER_NO,
DAYEND.AP_INV AS AP_INV,
DAYEND.INV_NO AS INV_NO,
DAYEND.FI_DOC_NUMBER AS FI_DOC_NUMBER,
DAYEND.VENDOR_CODE AS VENDOR_CODE,
DAYEND.EXPORT_TYPE AS EXPORT_TYPE,
HD.BUS_AREA_CODE TRN_BUS_AREA
FROM FCI_TBL_PC_E_DAYEND_INVOICE DAYEND
INNER JOIN FCI_TBL_LIV_T_MAN_VOUCHER_HD HD
ON DAYEND.BUS_PLACE_CODE = HD.BUS_PLACE_CODE
AND DAYEND.INV_NO = HD.INV_NO
AND DAYEND.AP_INV = HD.AP_INV
AND DAYEND.FI_DOC_NUMBER = HD.ACC_CODE
INNER JOIN FCI_TBL_LIV_T_FI_ITEM ITEM
ON HD.COM_CODE = ITEM.COM_CODE
AND HD.BUS_AREA_CODE = ITEM.BUS_AREA_CODE
AND HD.ACC_CODE = ITEM.FI_DOC_NUMBER
LEFT OUTER JOIN FCI_TBL_LIV_M_VENDOR VEN
ON HD.VENDOR_CODE = VEN.VENDOR_CODE
AND HD.COM_CODE = VEN.COM_CODE
LEFT OUTER JOIN FCI_TBL_LIV_M_EXCHANGE_RATE EXCH
ON ITEM.EXRATE_CODE = EXCH.EXCH_RATE_TYPE
INNER JOIN FCI_TBL_LIV_T_MAN_VOUCHER_IT IT
ON IT.COM_CODE = HD.COM_CODE
AND ITEM.FI_DOC_NUMBER = HD.ACC_CODE
AND IT.COM_CODE = HD.COM_CODE
AND IT.AP_INV = HD.AP_INV
AND IT.ITEM_NO = ITEM.ITEM_NO
LEFT OUTER JOIN FCI_TBL_PC_M_PROFIT_FOR_BOI BOI
ON BOI.PROD_CODE = IT.MODEL_NAME
WHERE NVL (DAYEND.LIV11EXPORTED_DATE, ' ') = ' '
-- AND DAYEND.voucher_no = 'CF201207000001'
ORDER BY ITEM.FI_DOC_NUMBER, ITEM.DC_INDICATOR DESC, ITEM.ITEM_NO)
GROUP BY TRN_BNO,
TRN_SEG,
TRN_VOU,
TRN_DTE,
TRN_DOC_DUE,
TRN_ACC,
TRN_VENDOR,
TRN_VNAME,
TRN_CURR,
TRN_EXCH,
TRN_BL_DATE,
TRN_PMT,
TRN_NAR,
TRN_INV,
TRN_INV_DATE,
TRN_EQNO,
TRN_PAYTERM,
TRN_LOC,
TRN_SYS,
TRN_CREATE,
TRN_WHT_CODE,
TRN_WHT_BASE,
TRN_STREET,
TRN_CITY,
TRN_TAX_CODE,
TRN_PROFIT,
VOUCHER_NO,
AP_INV,
INV_NO,
FI_DOC_NUMBER,
VENDOR_CODE,
EXPORT_TYPE,
TRN_BUS_AREA,
DC_INDICATOR
ORDER BY TRN_BNO,
TRN_SEG,
TRN_VOU,
TRN_DTE,
TRN_DOC_DUE,
TRN_ACC,
TRN_VENDOR,
TRN_VNAME,
TRN_DR_CURR,
TRN_CR_CURR,
TRN_CURR,
TRN_EXCH,
TRN_BL_DATE,
TRN_PMT,
TRN_NAR,
TRN_INV,
TRN_INV_DATE,
TRN_EQNO,
TRN_PAYTERM,
TRN_LOC,
TRN_SYS,
TRN_CREATE,
TRN_WHT_CODE,
TRN_WHT_BASE,
TRN_STREET,
TRN_CITY,
TRN_TAX_CODE,
TRN_PROFIT,
VOUCHER_NO,
AP_INV,
INV_NO,
FI_DOC_NUMBER,
VENDOR_CODE,
EXPORT_TYPE,
TRN_BUS_AREA;
CREATE OR REPLACE FORCE VIEW "JFCI"."FCI_VIW_PC_LIV11" ("TRN_BNO", "TRN_SEG", "TRN_VOU", "TRN_DTE", "TRN_DOC_DUE", "TRN_ACC", "TRN_VENDOR", "TRN_VNAME", "TRN_DR", "TRN_CR", "TRN_DR_CURR", "TRN_CR_CURR", "TRN_CURR", "TRN_EXCH", "TRN_BL_DATE", "TRN_PMT", "TRN_NAR", "TRN_INV", "TRN_INV_DATE", "TRN_EQNO", "TRN_PAYTERM", "TRN_LOC", "TRN_SYS", "TRN_CREATE", "TRN_WHT_CODE", "TRN_WHT_BASE", "TRN_STREET", "TRN_CITY", "TRN_TAX_CODE", "TRN_PROFIT", "VOUCHER_NO", "AP_INV", "INV_NO", "FI_DOC_NUMBER", "VENDOR_CODE", "EXPORT_TYPE", "TRN_BUS_AREA") AS
SELECT /*+ no_use_hash_aggregation */ TRN_BNO,
TRN_SEG,
TRN_VOU,
TRN_DTE,
TRN_DOC_DUE,
TRN_ACC,
TRN_VENDOR,
TRN_VNAME,
SUM (TRN_DR) TRN_DR,
SUM (TRN_CR) TRN_CR,
SUM (TRN_DR_CURR) TRN_DR_CURR,
SUM (TRN_CR_CURR) TRN_CR_CURR,
TRN_CURR,
TRN_EXCH,
TRN_BL_DATE,
TRN_PMT,
TRN_NAR,
TRN_INV,
TRN_INV_DATE,
TRN_EQNO,
TRN_PAYTERM,
TRN_LOC,
TRN_SYS,
TRN_CREATE,
TRN_WHT_CODE,
TRN_WHT_BASE,
TRN_STREET,
TRN_CITY,
TRN_TAX_CODE,
TRN_PROFIT,
VOUCHER_NO,
AP_INV,
INV_NO,
FI_DOC_NUMBER,
VENDOR_CODE,
EXPORT_TYPE,
TRN_BUS_AREA
FROM ( SELECT DECODE(HD.COM_CODE,'1000','Y ','3000','K ') TRN_BNO,
' ' TRN_SEG,
DAYEND.VOUCHER_NO AS TRN_VOU,
DECODE(NVL(HD.CANCEL_DATE, ' '),' ',
TO_CHAR (TO_DATE (HD.AP_DATE, 'YYYYMMDD'),'DDMMYYYY'),
DECODE(SUBSTR(DAYEND.FI_DOC_NUMBER,1,2),'ZA' ,TO_CHAR (TO_DATE (SUBSTR(HD.CANCEL_DATE,1,8), 'YYYYMMDD'),'DDMMYYYY'),HD.CANCEL_DATE)) TRN_DTE,
hd.inv_date TRN_DOC_DUE,
ITEM.GLACCOUNT AS TRN_ACC,
HD.VENDOR_CODE AS TRN_VENDOR,
VEN.VENDOR_NAME AS TRN_VNAME,
ITEM.DC_INDICATOR DC_INDICATOR,
DECODE(ITEM.DC_INDICATOR,'D',ITEM.AMOUNT_LOC,0) TRN_DR,
DECODE(ITEM.DC_INDICATOR,'C',ITEM.AMOUNT_LOC,0) TRN_CR,
DECODE(ITEM.DC_INDICATOR,'D',ITEM.AMOUNT_DOC,0) TRN_DR_CURR,
DECODE(ITEM.DC_INDICATOR,'C',ITEM.AMOUNT_DOC,0) TRN_CR_CURR,
DECODE(NVL(HD.DOC_CURR,' '),' ','THB',HD.DOC_CURR) TRN_CURR,
HD.EXCH_RATE AS TRN_EXCH,
DECODE(SIGN(LENGTH(NVL(HD.BILL_DATE,' '))-8),1,
TO_CHAR(TO_DATE(HD.BILL_DATE, 'YYYYMMDD'),'DDMMYYYY'),
HD.BILL_DATE) TRN_BL_DATE,
VEN.PAY_METH AS TRN_PMT,
'' AS TRN_NAR,
DAYEND.INV_NO AS TRN_INV,
TO_CHAR (TO_DATE (HD.INV_DATE, 'YYYYMMDD'), 'DDMMYYYY') AS TRN_INV_DATE,
' ' AS TRN_EQNO,
VEN.PAY_TERM AS TRN_PAYTERM,
CASE
WHEN HD.PLANT_CODE = 'D'
THEN
'LCB2'
WHEN HD.PLANT_CODE = 'H'
THEN
'LCB4'
WHEN HD.PLANT_CODE = 'F'
THEN
'LCB1'
WHEN HD.PLANT_CODE = 'G'
THEN
'LCB3'
WHEN HD.PLANT_CODE = 'B'
THEN
'MEC'
WHEN HD.PLANT_CODE = 'X'
THEN
'LCB2'
WHEN NVL (HD.PLANT_CODE, ' ') = ' '
AND HD.COM_CODE = '3000'
THEN
'MEC'
WHEN NVL (HD.PLANT_CODE, ' ') = ' '
AND HD.COM_CODE = '1000'
AND HD.BUS_PLACE_CODE = '0009'
THEN
'LCB3'
WHEN NVL (HD.PLANT_CODE, ' ') = ' '
AND HD.COM_CODE = '1000'
AND HD.BUS_PLACE_CODE = '0002'
THEN
'LCB2'
WHEN NVL (HD.PLANT_CODE, ' ') = ' '
AND HD.COM_CODE = '1000'
AND HD.BUS_PLACE_CODE = '0013'
THEN
'LCB4'
END
AS TRN_LOC,
TO_CHAR (SYSDATE, 'DDMMYYYY') AS TRN_SYS,
HD.CREATED_BY AS TRN_CREATE,
HD.VAT_CODE AS TRN_WHT_CODE,
0 AS TRN_WHT_BASE,
'' AS TRN_STREET,
'' AS TRN_CITY,
'' AS TRN_TAX_CODE,
NVL (BOI.PROFIT, ' ') AS TRN_PROFIT,
DAYEND.VOUCHER_NO AS VOUCHER_NO,
DAYEND.AP_INV AS AP_INV,
DAYEND.INV_NO AS INV_NO,
DAYEND.FI_DOC_NUMBER AS FI_DOC_NUMBER,
DAYEND.VENDOR_CODE AS VENDOR_CODE,
DAYEND.EXPORT_TYPE AS EXPORT_TYPE,
HD.BUS_AREA_CODE TRN_BUS_AREA
FROM FCI_TBL_PC_E_DAYEND_INVOICE DAYEND
INNER JOIN FCI_TBL_LIV_T_MAN_VOUCHER_HD HD
ON DAYEND.BUS_PLACE_CODE = HD.BUS_PLACE_CODE
AND DAYEND.INV_NO = HD.INV_NO
AND DAYEND.AP_INV = HD.AP_INV
AND DAYEND.FI_DOC_NUMBER = HD.ACC_CODE
INNER JOIN FCI_TBL_LIV_T_FI_ITEM ITEM
ON HD.COM_CODE = ITEM.COM_CODE
AND HD.BUS_AREA_CODE = ITEM.BUS_AREA_CODE
AND HD.ACC_CODE = ITEM.FI_DOC_NUMBER
LEFT OUTER JOIN FCI_TBL_LIV_M_VENDOR VEN
ON HD.VENDOR_CODE = VEN.VENDOR_CODE
AND HD.COM_CODE = VEN.COM_CODE
LEFT OUTER JOIN FCI_TBL_LIV_M_EXCHANGE_RATE EXCH
ON ITEM.EXRATE_CODE = EXCH.EXCH_RATE_TYPE
INNER JOIN FCI_TBL_LIV_T_MAN_VOUCHER_IT IT
ON IT.COM_CODE = HD.COM_CODE
AND ITEM.FI_DOC_NUMBER = HD.ACC_CODE
AND IT.COM_CODE = HD.COM_CODE
AND IT.AP_INV = HD.AP_INV
AND IT.ITEM_NO = ITEM.ITEM_NO
LEFT OUTER JOIN FCI_TBL_PC_M_PROFIT_FOR_BOI BOI
ON BOI.PROD_CODE = IT.MODEL_NAME
WHERE NVL (DAYEND.LIV11EXPORTED_DATE, ' ') = ' '
-- AND DAYEND.voucher_no = 'CF201207000001'
ORDER BY ITEM.FI_DOC_NUMBER, ITEM.DC_INDICATOR DESC, ITEM.ITEM_NO)
GROUP BY TRN_BNO,
TRN_SEG,
TRN_VOU,
TRN_DTE,
TRN_DOC_DUE,
TRN_ACC,
TRN_VENDOR,
TRN_VNAME,
TRN_CURR,
TRN_EXCH,
TRN_BL_DATE,
TRN_PMT,
TRN_NAR,
TRN_INV,
TRN_INV_DATE,
TRN_EQNO,
TRN_PAYTERM,
TRN_LOC,
TRN_SYS,
TRN_CREATE,
TRN_WHT_CODE,
TRN_WHT_BASE,
TRN_STREET,
TRN_CITY,
TRN_TAX_CODE,
TRN_PROFIT,
VOUCHER_NO,
AP_INV,
INV_NO,
FI_DOC_NUMBER,
VENDOR_CODE,
EXPORT_TYPE,
TRN_BUS_AREA,
DC_INDICATOR
ORDER BY TRN_BNO,
TRN_SEG,
TRN_VOU,
TRN_DTE,
TRN_DOC_DUE,
TRN_ACC,
TRN_VENDOR,
TRN_VNAME,
TRN_DR_CURR,
TRN_CR_CURR,
TRN_CURR,
TRN_EXCH,
TRN_BL_DATE,
TRN_PMT,
TRN_NAR,
TRN_INV,
TRN_INV_DATE,
TRN_EQNO,
TRN_PAYTERM,
TRN_LOC,
TRN_SYS,
TRN_CREATE,
TRN_WHT_CODE,
TRN_WHT_BASE,
TRN_STREET,
TRN_CITY,
TRN_TAX_CODE,
TRN_PROFIT,
VOUCHER_NO,
AP_INV,
INV_NO,
FI_DOC_NUMBER,
VENDOR_CODE,
EXPORT_TYPE,
TRN_BUS_AREA;
07 มกราคม 2560
ของขวัญปีใหม่, วาเลนไทน์, วันแม่ โอกาสพิเศษ ของถูก และดี ที่นี่เลย
อยากได้ของขวัญให้สาวๆ ให้แม่ หรือจะรับไปขายต่อ รับรองถูกใจแน่ๆ ค่ะ น่ารัก
ดอกไม้ถัก งานฝีมือ ^_^ น่ารักมากๆ ค่ะ
แม่ค้าใจดีมากๆ สั่งเยอะก็ลด ส่งฟรี แถมยังมีของแถมให้ด้วยค่ะ
เทศกาลนี้ใครยังไม่รู้จะซื้ออะไรก็ลองดู link ที่ให้ไว้ข้างล่าง หรือโทรติดต่อได้จ้า
สอบถามได้ ถึงแม้ไม่สั่งซื้อ แม่ค้ายินดีตอบทุกคำถามจ๊ะ
site : http://mayooree.lnwshop.com/
ดอกไม้ถัก งานฝีมือ ^_^ น่ารักมากๆ ค่ะ
แม่ค้าใจดีมากๆ สั่งเยอะก็ลด ส่งฟรี แถมยังมีของแถมให้ด้วยค่ะ
เทศกาลนี้ใครยังไม่รู้จะซื้ออะไรก็ลองดู link ที่ให้ไว้ข้างล่าง หรือโทรติดต่อได้จ้า
สอบถามได้ ถึงแม้ไม่สั่งซื้อ แม่ค้ายินดีตอบทุกคำถามจ๊ะ
site : http://mayooree.lnwshop.com/
| mail : mayooree123@hotmail.com |
| tel: 0899837747 |
30 กันยายน 2556
Analyze Table
มีหลายแบบค่ะ ถ้าบน Sql Developer
right click ที่ table ที่จะทำการ analyze >> statistics >> gather statistics...
แบบที่ 2 คือ
analyze table EMP compute statistics;
หรือ
analyze table EMP estimate statistics sample 60 percent;
เปลี่ยน EMP เป็นชื่อ table ที่ต้องการ
right click ที่ table ที่จะทำการ analyze >> statistics >> gather statistics...
แบบที่ 2 คือ
analyze table EMP compute statistics;
หรือ
analyze table EMP estimate statistics sample 60 percent;
เปลี่ยน EMP เป็นชื่อ table ที่ต้องการ
29 กันยายน 2556
ความรู้เบื่องต้นเรื่องรถ
เช็คสภาพรถ
1. ยางล้อรถ ยาอ่อน เติมลมอยู่ที่ขนาดวงล้อ อย่าง 14 นิ้ว ก็เติม 28-30 ปอนด์
2. ระดับน้ำหล่อเย็น ควรจะมีอยู่ถึงระดับสูงสุดในถังพักสำรอง
3. ดูน้ำมัน ดึงมาดูระดับ L คือต่ำเกินไป จาก L-F ประมาณ 1 lit
ก่อนขับรถ
1. คาดเข็มขัด
2. ใส่เกียร์ P หรือ N
3. ไฟหน้าไม่มีอะไรขึ้นสีแดง แดง เช่นน้ำมันหมด ปิดประตูไม่สนิท ใส่เบรคมือ ระวัง OD ด้วย overdrive
จอดรถ : ตรวจสอบก่อนจะดับเครื่อง
1. เกียร์ N หรือ P
2. ดับแอร์
3. เครื่องเสียง (ไม่ดับก็ได้)
4. ดับไฟหน้ารถ เวลาเปิดไว้มักลืมปิด
1. ยางล้อรถ ยาอ่อน เติมลมอยู่ที่ขนาดวงล้อ อย่าง 14 นิ้ว ก็เติม 28-30 ปอนด์
2. ระดับน้ำหล่อเย็น ควรจะมีอยู่ถึงระดับสูงสุดในถังพักสำรอง
3. ดูน้ำมัน ดึงมาดูระดับ L คือต่ำเกินไป จาก L-F ประมาณ 1 lit
ก่อนขับรถ
1. คาดเข็มขัด
2. ใส่เกียร์ P หรือ N
3. ไฟหน้าไม่มีอะไรขึ้นสีแดง แดง เช่นน้ำมันหมด ปิดประตูไม่สนิท ใส่เบรคมือ ระวัง OD ด้วย overdrive
จอดรถ : ตรวจสอบก่อนจะดับเครื่อง
1. เกียร์ N หรือ P
2. ดับแอร์
3. เครื่องเสียง (ไม่ดับก็ได้)
4. ดับไฟหน้ารถ เวลาเปิดไว้มักลืมปิด
07 พฤศจิกายน 2555
14 กันยายน 2555
Bulk Load Oracle 10G
| declare | ||||||||||||||
| l_cnt pls_integer := 20; | ||||||||||||||
| l_start number; | ||||||||||||||
| l_run number; | ||||||||||||||
| begin | ||||||||||||||
| l_start := dbms_utility.get_time; | ||||||||||||||
| for i in 1..l_cnt loop | ||||||||||||||
| explicit_cursor; | << Cursor…open
loop… fetch into |
|||||||||||||
| end loop; | ||||||||||||||
| l_run := dbms_utility.get_time - l_start; | ||||||||||||||
| dbms_output.put_line ('run 1 in .... '||l_run||' hsecs'); | ||||||||||||||
| l_start := dbms_utility.get_time; | ||||||||||||||
| for i in 1..l_cnt loop | ||||||||||||||
| implicit_cursor_1; | << Cursor…for loop | |||||||||||||
| end loop; | ||||||||||||||
| l_run := dbms_utility.get_time - l_start; | ||||||||||||||
| dbms_output.put_line ('run 2 in .... '||l_run||' hsecs'); | ||||||||||||||
| l_start := dbms_utility.get_time; | ||||||||||||||
| for i in 1..l_cnt loop | ||||||||||||||
| implicit_cursor_2; | << for (select)loop | |||||||||||||
| end loop; | ||||||||||||||
| l_run := dbms_utility.get_time - l_start; | ||||||||||||||
| dbms_output.put_line ('run 3 in .... '||l_run||' hsecs'); | ||||||||||||||
| l_start := dbms_utility.get_time; | ||||||||||||||
| for i in 1..l_cnt loop | ||||||||||||||
| explicit_cursor_bulk; | << Cursor…open
loop…fetch… bulk collect into…limit |
|||||||||||||
| end loop; | ||||||||||||||
| l_run := dbms_utility.get_time - l_start; | ||||||||||||||
| dbms_output.put_line ('run 4 in .... '||l_run||' hsecs'); | ||||||||||||||
| end; | ||||||||||||||
| run 1 in .... 311 hsecs | << explicit_cursor | แย่สุด | ||||||||||||
| run 2 in .... 18 hsecs | << implicit_cursor_1 |
|
เท่ากัน | * หมายเหตุ ถ้าไม่ใช้ Ver. 10g ขึ้นไป จะมีความเร็วไม่ต่างจากแบบที่ 1 มากนัก จะเร็วเพียงเล็กน้อย แต่ถ้าเป็น 10g มีการปรับปรุง for loop ให้เป็นแบบ array |
||||||||||
| run 3 in .... 18 hsecs | << implicit_cursor_2 | |||||||||||||
| run 4 in .... 14 hsecs | << explicit_cursor_bulk | ดีสุด | ||||||||||||
12 กันยายน 2555
merge into using on
MERGE INTO target_table tgt USING source_table src ON ( src.object_id = tgt.object_id ) WHEN MATCHED -- เมื่อ match กัน คือเมื่อ src.object_id = tgt.object_id THEN -- update data ให้ name และ type ของ table target_table = name และ type ของ table source_table UPDATE SET tgt.object_name = src.object_name , tgt.object_type = src.object_type WHEN NOT MATCHED -- เมื่อไม่ match กัน คือเมื่อ src.object_id != tgt.object_id THEN --insert data จาก table source_table ลง table target_table
INSERT ( tgt.object_id , tgt.object_name , tgt.object_type ) VALUES ( src.object_id , src.object_name , src.object_type );
07 กันยายน 2555
31 กรกฎาคม 2555
วิธีแก้ select xml data จาก oracle database (ORA-19025: EXTRACTVALUE returns value of only) โดยใช้ xmlsequence
SELECT extractValue(y.column_value, '/C_CUST_OWNER/@id') cust_id
FROM tbl_item_po_xml t,table (xmlsequence(extract(t.xml_data,'/INTERNAL_PRD_CODES/INTERNAL_PRD_CODE/WAREHOUSE_NOS/WAREHOUSE_NO'))) x,table (xmlsequence(extract(x.column_value,'/WAREHOUSE_NO/C_CUST_OWNERS/C_CUST_OWNER'))) y
WHERE C_FILE_NAME = c_file_name
AND extractValue(t.xml_data, '/INTERNAL_PRD_CODES/INTERNAL_PRD_CODE/@id') = j.prd_code
AND extractValue(x.column_value, '/WAREHOUSE_NO/@id') = k.wh_no
27 มิถุนายน 2555
parameter page number in report builder
Page &<PageNumber> of &<TotalPages>
25 มิถุนายน 2555
search หา table ที่มี column นี้ ใช้กับ 6i ไม่ได้
SELECT table_name
FROM user_tab_cols
WHERE column_name = 'CUSTOMER_PRD_CODE'
สมัครสมาชิก:
บทความ (Atom)







