ようこそ (Jyokoso) MY BLOG

いらっしゃいませ (hajimemashite) สำหรับผู้เข้าใหม่นะค่ะ ^^V

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 หมายถึงเครื่องมือที่ใช้วัดการดำเนินหรือประเมิณงานในด้างต่างๆขององค์กร ในรูปของข้อมูลเชิงปริมาณเพื่อสะท้อนประสิทธิภาพและประสิทธิผลในการปฎิบัติงานในองค์กรนั้น


อ้างอิงจาก 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;

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'

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;