Sunday, March 24, 2013

Vendor contact Update API


DECLARE
   l_flag varchar2(10) default 'Y';
   --
   lv_return_status        VARCHAR2 (1);
   lv_msg_count            NUMBER;
   lv_msg_data             VARCHAR2 (2000);
--
   lv_vendor_CONTACT_id       ap_supplier_CONTACTS.vendor_CONTACT_id%TYPE;
   lv_vendor_site_id       ap_supplier_sites.vendor_site_id%TYPE;
   lv_vendor_id            ap_suppliers.vendor_id%TYPE;
  -- lv_vendor_site_rec      ap_vendor_pub_pkg.r_vendor_site_rec_type;
  -- lv_vendor_rec           ap_vendor_pub_pkg.r_vendor_rec_type;
   lv_vendor_contact_rec   ap_vendor_pub_pkg.r_vendor_contact_rec_type;
 
 
   ln_vendor_id            NUMBER;
   ln_vendor_site_id       NUMBER;
   ln_vendor_CONTACT_id       NUMBER;
--
     v_user_id NUMBER;
    v_resp_id NUMBER;
    v_resp_appl_id NUMBER;
 
    ----
   cursor cur_vendor is SELECT *
               FROM apps.XX_SUPPLIER_SITES_CONTACT WHERE SUPPLIER_CONTACT_ID = 294 ;

begin
   
 

   
      fnd_global.apps_initialize (1110,50622,200);
      mo_global.init ('S');

    --  lv_vendor_site_id := 4959;
     -- lv_vendor_id := 32652;
    --  lv_vendor_CONTACT_id := 294;
   
    for i in cur_vendor loop
   
      SELECT   vendor_id
               INTO ln_vendor_id
               FROM ap_suppliers
              WHERE vendor_id = i.SUPPLIER_id;
     
      SELECT vendor_site_id
              INTO ln_vendor_site_id
             FROM ap_supplier_sites_all
                 WHERE vendor_id = ln_vendor_id
            AND vendor_site_ID= i.SUPPLIER_site_ID;
   
      SELECT VENDOR_CONTACT_ID
      INTO ln_vendor_contact_id
      FROM ap_supplier_Contacts WHERE
       VENDOR_CONTACT_ID = I.SUPPLIER_CONTACT_ID;
   
       lv_vendor_site_id := ln_vendor_site_id;
      lv_vendor_id := ln_vendor_id;
      lv_vendor_CONTACT_id := ln_vendor_contact_id;
   
     SELECT  VENDOR_CONTACT_ID        ,
         VENDOR_SITE_ID            ,
        VENDOR_ID            
 
     ,  PER_PARTY_ID            ,
     RELATIONSHIP_ID            ,
     REL_PARTY_ID            ,
     PARTY_SITE_ID            ,
     ORG_CONTACT_ID            ,
        ORG_PARTY_SITE_ID
     INTO
     lv_vendor_contact_rec.vendor_contact_id,
     lv_vendor_contact_rec.VENDOR_SITE_ID,
      lv_vendor_contact_rec.VENDOR_ID,
        lv_vendor_contact_rec.PER_PARTY_ID,
        lv_vendor_contact_rec.RELATIONSHIP_ID,
        lv_vendor_contact_rec.REL_PARTY_ID,
        lv_vendor_contact_rec.PARTY_SITE_ID,
        lv_vendor_contact_rec.ORG_CONTACT_ID,
        lv_vendor_contact_rec.ORG_PARTY_SITE_ID
   
         FROM  po_vendor_contacts
          where vendor_contact_id= lv_vendor_CONTACT_id AND VENDOR_SITE_ID = lv_vendor_site_id AND VENDOR_ID = lv_vendor_id ;
            lv_vendor_contact_rec.inactive_date := trunc(sysdate-5); --fnd_api.g_miss_date;
           --lV_vendor_contact_rec.person_middle_name := 'Sekhar';
         
        ap_vendor_pub_pkg.update_vendor_contact
                           (p_api_version           => 1.0,
                            p_init_msg_list         => fnd_api.g_FALSE,
                            p_commit                => fnd_api.g_false,
                            p_validation_level      => fnd_api.g_valid_level_full,
                            p_vendor_contact_rec    => lv_vendor_contact_rec,
                            x_return_status         => lv_return_status,
                            x_msg_count             => lv_msg_count,
                            x_msg_data              => lv_msg_data
                           );
                           COMMIT;
   
     end loop;
   
     dbms_output.put_line('return_status: '||lV_return_status);
    dbms_output.put_line('msg_data: '||lV_msg_data);
    dbms_output.put_line('msg_count: '||lV_msg_count);
  IF lV_return_status ='U'
    THEN
    lV_msg_data := SUBSTR (lv_msg_data || SQLERRM, 1, 4000);
    END IF;

    DBMS_OUTPUT.put_line ('l_msg_data: ' || lV_msg_data);
   -- END;

    FOR I IN 1..lv_msg_count
    LOOP
    lv_msg_data := lv_msg_count||SUBSTR(FND_MSG_PUB.GET(p_encoded=>'T'),1,255);

 
    fnd_file.put_line(fnd_file.log,'Error occured while updating'||lv_msg_data);
    END LOOP ;

exception
when others then
    fnd_file.put_line(fnd_file.log,sqlcode||','||sqlerrm);
end;

Saturday, March 23, 2013

Loyality Extraction Anonymous procedure to fetch the loyality data in a particular location in RESA (Region wise *.CSV file has been created at a particular location using UTL Package)

---/rms-s9c/rms/d01/install_dump/oradb10g/dbadmin/rms_admin/utlfile/loylity declare CURSOR CUR_VAT_REGION IS SELECT vat_region FROM vat_region vr WHERE EXISTS ( SELECT 1 FROM store s WHERE EXISTS ( SELECT 1 FROM sa_exported WHERE sa_exported.store = s.store AND sa_exported.store BETWEEN 999 and 9999 AND TRUNC(sa_exported.exp_datetime) = '28-May-12' AND sa_exported.status = 'P' AND sa_exported.system_code = 'RMS' ) AND s.VAT_REGION = vr.vat_region ) ; ---This package is to get the region code to create the CSV store wise firstly CURSOR CUR_LOYALITY_DATA(p_vat_region number) IS SELECT sth.store, ---"Store No", sth.register, --"POS Terminal No", sth.ref_no2, --"Transaction No." , sth.tran_no, --"Receipt NO", to_char(sth.tran_datetime,'dd/mm/yyyy') tran_datetime, --"Transaction Date" , sth.ref_no4, --"Loyalty Scheme", sth.ref_no3, --"Loyalty Card No.", stt.TENDER_TYPE_ID, --"Tender Code ", stt.tender_amt, --"Tender Amount ", sth.value ---" Bill Amount " from sa_exported sexp , sa_tran_head sth, sa_tran_tender stt,store s where sexp.store_day_seq_no = sth.store_day_seq_no and sexp.tran_seq_no = sth.TRAN_SEQ_NO and sexp.store = sth.store and sexp.day = sth.day and sth.TRAN_SEQ_NO = stt.tran_seq_no and sth.store = stt.store and sth.day = stt.day and sexp.store = s.store and trunc(sexp.exp_datetime) = '28-May-12' and sth.status = 'P' and sth.tran_type in ('SALE','RETURN') and ref_no3 is not null and stt.tender_type_id != 7002 and SYSTEM_CODE = 'RMS' and sexp.status = 'P' and s.VAT_REGION = p_vat_region; l_id utl_file.file_type; v_time_stamp varchar2(40); BEGIN SELECT TO_CHAR(SYSDATE, 'DDMMYYYYHH12MISS') INTO v_time_stamp FROM DUAL; FOR i IN CUR_VAT_REGION LOOP l_id := utl_file.fopen('/rms-s9c/rms/d01/install_dump/oradb10g/dbadmin/rms_admin/utlfile',i.vat_region||'Loyalty_SM_VATREGION_'||v_time_stamp||'.csv','W'); FOR j IN CUR_LOYALITY_DATA(i.vat_region) LOOP utl_file.put_line(l_id, j.store||','|| j.register||','|| --j.tran_seq_no||','|| j.ref_no2||','|| j.tran_no||','|| j.tran_datetime||','|| j.ref_no4||','|| j.ref_no3||','|| j.TENDER_TYPE_ID||','|| j.tender_amt||','|| j.value||REPLACE(chr(13),'') ); END LOOP; --vNewLine := null; utl_file.fclose(l_id); END LOOP; EXCEPTION WHEN UTL_FILE.INVALID_PATH THEN UTL_FILE.FCLOSE(l_id); RAISE_APPLICATION_ERROR(-20000, 'File location is invalid.'); WHEN UTL_FILE.INVALID_MODE THEN UTL_FILE.FCLOSE(l_id); RAISE_APPLICATION_ERROR(-20001, 'The open_mode parameter in FOPEN is invalid.'); WHEN UTL_FILE.INVALID_FILEHANDLE THEN UTL_FILE.FCLOSE(l_id); RAISE_APPLICATION_ERROR(-20002, 'File handle is invalid.'); WHEN UTL_FILE.INVALID_OPERATION THEN UTL_FILE.FCLOSE(l_id); RAISE_APPLICATION_ERROR(-20003, 'File could not be opened or operated on as requested.'); WHEN UTL_FILE.READ_ERROR THEN UTL_FILE.FCLOSE(l_id); RAISE_APPLICATION_ERROR(-20004, 'Operating system error occurred during the read operation.'); WHEN UTL_FILE.WRITE_ERROR THEN UTL_FILE.FCLOSE(l_id); RAISE_APPLICATION_ERROR(-20005, 'Operating system error occurred during the write operation.'); WHEN UTL_FILE.INTERNAL_ERROR THEN UTL_FILE.FCLOSE(l_id); RAISE_APPLICATION_ERROR(-20006, 'Unspecified PL/SQL error.'); WHEN UTL_FILE.CHARSETMISMATCH THEN UTL_FILE.FCLOSE(l_id); RAISE_APPLICATION_ERROR(-20007, 'A file is opened using FOPEN_NCHAR, but later I/O ' || 'operations use nonchar functions such as PUTF or GET_LINE.'); WHEN UTL_FILE.FILE_OPEN THEN UTL_FILE.FCLOSE(l_id); RAISE_APPLICATION_ERROR(-20008, 'The requested operation failed because the file is open.'); WHEN UTL_FILE.INVALID_MAXLINESIZE THEN UTL_FILE.FCLOSE(l_id); RAISE_APPLICATION_ERROR(-20009, 'The MAX_LINESIZE value for FOPEN() is invalid; it should ' || 'be within the range 1 to 32767.'); WHEN UTL_FILE.INVALID_FILENAME THEN UTL_FILE.FCLOSE(l_id); RAISE_APPLICATION_ERROR(-20010, 'The filename parameter is invalid.'); WHEN UTL_FILE.ACCESS_DENIED THEN UTL_FILE.FCLOSE(l_id); RAISE_APPLICATION_ERROR(-20011, 'Permission to access to the file location is denied.'); WHEN UTL_FILE.INVALID_OFFSET THEN UTL_FILE.FCLOSE(l_id); RAISE_APPLICATION_ERROR(-20012, 'The ABSOLUTE_OFFSET parameter for FSEEK() is invalid; ' || 'it should be greater than 0 and less than the total ' || 'number of bytes in the file.'); WHEN UTL_FILE.DELETE_FAILED THEN UTL_FILE.FCLOSE(l_id); RAISE_APPLICATION_ERROR(-20013, 'The requested file delete operation failed.'); WHEN UTL_FILE.RENAME_FAILED THEN UTL_FILE.FCLOSE(l_id); RAISE_APPLICATION_ERROR(-20014, 'The requested file rename operation failed.'); WHEN OTHERS THEN UTL_FILE.FCLOSE(l_id); RAISE; -- WHEN UTL_FILE.INVALID_PATH THEN -- utl_file.fclose(l_id); -- RAISE_APPLICATION_ERROR(-20000, 'gg File location is invalid.'); -- WHEN OTHERS THEN -- utl_file.fclose(l_id); -- RAISE; END; /

tran seq no item seq no wise tax and discount details

with resa_tran as ( select /*+ MATERIALIZE */ sth.store store,s.store_name Store_Name,trunc(tran_datetime) tran_date ,tran_seq_no, ssd.business_date, sth.day, value Partial_Val from sa_tran_head sth,sa_store_day ssd,store s where s.store = sth.store and s.store between 999 and 9999 and s.store =1318 --and tran_seq_no in (1216648196) and ssd.store_day_seq_no = sth.store_day_seq_no and --ssd.business_date >= '01-apr-2012' and trunc(sth.tran_datetime) = '06-may-2012' and sth.status = 'P' and tran_type in ('SALE','RETURN') --ssd.business_date <> trunc(sth.tran_datetime) -- and sth.tran_seq_no = 1199240005 ) select a.Store "Store", a.store_name "Store Name",a.tran_date "Transaction Date",a.tran_seq_no,a.item,a.item_seq_no, sum(total_retail) "Total Retail",sum(nvl(disc,0)) "Discount", sum(nvl(tax,0)) "Tax Amount" from ( select rt.store, rt.store_name, rt.business_date,rt.day, rt.tran_date, rt.tran_seq_no,sti.item,sti.item_seq_no, sum(sti.qty*sti.unit_retail) total_retail from resa_tran rt, sa_tran_item sti, item_master im, deps d, groups gp where rt.tran_seq_no = sti.TRAN_SEQ_NO and rt.store = sti.store and rt.day = sti.day and im.dept = d.dept and sti.item = im.item and d.GROUP_NO = gp.group_no group by rt.store,rt.store_name,rt.tran_date, rt.business_date,rt.day, rt.tran_seq_no, sti.item_seq_no,sti.item ) a, ( select rt.store, business_date,rt.day, rt.tran_seq_no, std.ITEM_SEQ_NO, sum(nvl(std.QTY,0)*nvl(std.UNIT_DISCOUNT_AMT,0)) disc from resa_tran rt, sa_tran_disc std where rt.tran_seq_no = std.TRAN_SEQ_NO and rt.store = std.store and rt.day = std.day group by rt.store, business_date ,rt.day, std.item_seq_no, rt.tran_seq_no ) b, ( select rt.store, business_date,rt.day, rt.tran_seq_no, stg.ITEM_SEQ_NO, sum(nvl(stg.QTY,0)*nvl(stg.UNIT_IGTAX_AMT,0)) Tax from resa_tran rt, sa_tran_igtax stg where rt.tran_seq_no = stg.TRAN_SEQ_NO and rt.store = stg.store and rt.day = stg.day group by rt.store, business_date ,rt.day, stg.item_seq_no, rt.tran_seq_no ) c where a.tran_seq_no = b.tran_seq_no(+) and a.item_seq_no = b.item_seq_no(+) and a.store = b.store(+) and a.day = b.day(+) and a.tran_seq_no = c.tran_seq_no(+) and a.item_seq_no = c.item_seq_no(+) and a.store = c.store(+) and a.day = c.day(+) group by a.Store, a.store_name,a.tran_date,a.tran_seq_no,a.item,a.item_seq_no

Tran Seq No wise Tax,Discount details, gross amount and net amount in RESA

with resa_tran as ( select /*+ MATERIALIZE */ sth.store store,s.store_name Store_Name,trunc(tran_datetime) tran_date ,tran_seq_no, ssd.business_date, sth.day, value , tran_type,tran_no,REGISTER,CASHIER from sa_tran_head sth,sa_store_day ssd,store s where s.store = sth.store and s.store between 999 and 9999 and s.store in (1495,1569,3023)--and tran_seq_no in (1216648196) and ssd.store_day_seq_no = sth.store_day_seq_no and sth.status = 'P' and tran_type in ('SALE','RETURN') and trunc(sth.tran_datetime) between '26-Mar-12' and '05-Apr-12' ) select a.Store "Store", a.store_name "Store Name",a.tran_date "Transaction Date",a.tran_seq_no "Tran Seq No", a.value "Reliazed Sale" , a.tran_type "Transcation Type" ,a.tran_no "Bill No" ,a.REGISTER "Pos Terminal No",a.CASHIER "Staff Id", --a.item,a.item_seq_no, sum(total_retail) "Total Retail/Gross Amt",sum(nvl(disc,0)) "Discount", sum(nvl(tax,0)) "Tax Amount" ,(sum(total_retail)- sum(nvl(disc,0)) - sum(nvl(tax,0))) "Net Amount" from ( select rt.store, rt.store_name, rt.business_date,rt.day, rt.tran_date, rt.tran_seq_no,sti.item,sti.item_seq_no, value , tran_type,tran_no,REGISTER,CASHIER, sum(sti.qty*sti.unit_retail) total_retail from resa_tran rt, sa_tran_item sti, item_master im, deps d, groups gp where rt.tran_seq_no = sti.TRAN_SEQ_NO and rt.store = sti.store and rt.day = sti.day and im.dept = d.dept and sti.item = im.item and d.GROUP_NO = gp.group_no group by rt.store,rt.store_name,rt.tran_date, rt.business_date,rt.day, rt.tran_seq_no, sti.item_seq_no,sti.item, value , tran_type,tran_no,REGISTER,CASHIER ) a, ( select rt.store, business_date,rt.day, rt.tran_seq_no, std.ITEM_SEQ_NO, sum(nvl(std.QTY,0)*nvl(std.UNIT_DISCOUNT_AMT,0)) disc from resa_tran rt, sa_tran_disc std where rt.tran_seq_no = std.TRAN_SEQ_NO and rt.store = std.store and rt.day = std.day group by rt.store, business_date ,rt.day, std.item_seq_no, rt.tran_seq_no ) b, ( select rt.store, business_date,rt.day, rt.tran_seq_no, stg.ITEM_SEQ_NO, sum(nvl(stg.QTY,0)*nvl(stg.UNIT_IGTAX_AMT,0)) Tax from resa_tran rt, sa_tran_igtax stg where rt.tran_seq_no = stg.TRAN_SEQ_NO and rt.store = stg.store and rt.day = stg.day group by rt.store, business_date ,rt.day, stg.item_seq_no, rt.tran_seq_no ) c where a.tran_seq_no = b.tran_seq_no(+) and a.item_seq_no = b.item_seq_no(+) and a.store = b.store(+) and a.day = b.day(+) and a.tran_seq_no = c.tran_seq_no(+) and a.item_seq_no = c.item_seq_no(+) and a.store = c.store(+) and a.day = c.day(+) group by a.Store, a.store_name,a.tran_date,a.tran_seq_no,--,a.item,a.item_seq_no value , tran_type,tran_no,REGISTER,CASHIER

Store day tran_seq_no and Item wise Tax detail Query in India Localization

with resa as ( select /*+ materialize */ s.store,s.store_name,vat.vat_region_name, ssd.business_date, sth.tran_seq_no,ssd.day, sth.tran_no,trunc(sth.tran_datetime) tran_date,sti.item, im.item_desc,im.tax_category,tc.tax_category_desc, sti.qty,sti.item_seq_no,s.vat_region, tran_type, sth.status, store_format, unit_retail from store s,vat_region vat, sa_store_day ssd, sa_tran_head sth, sa_tran_item sti, item_master im, tax_category tc where store_format = 1001 and s.store between 999 and 9999 and trunc(sth.tran_datetime) = trunc(sysdate-1) and sth.status = 'P' and sth.tran_type in ('SALE','RETURN')and im.item_level = 2 and s.store = ssd.store and s.vat_region = vat.vat_region and sti.tran_seq_no = sth.tran_seq_no and sti.store = sth.store and sti.day = sth.day and sth.store_day_seq_no = ssd.store_day_seq_no and ssd.store = ssd.store and ssd.day = sth.day and sti.item = im.item and im.tax_category = tc.tax_category ) select store "Store", store_name "Store Name", tran_date "Tran Date", assignment_id "Assignment Id", item_no "Item No", item_desc "Item Desc", tax_category "Tax Category", tax_category_desc "Tax Category Desc", master_bas_tax_code "Master Basic Tax Code", master_bas_tax_rate "Master Basic Tax Rate", master_add_tax_code "Master Add Tax Code", master_add_tax_rate "Master Add Tax Rate", tran_bas_tax_code "Tran Base Tax Code" , tran_bas_tax_rate "Tran Base Tax Rate", tran_add_tax_code "Tran Add Tax Code", tran_add_tax_rate "Tran Add Tax Rate", vat_region "Vat Region", vat_region_name "Vat Region Name" from ( select rownum ro, nvl(a.store,b.store) store, nvl(a.store_name,b.store_name) store_name, nvl(a.transaction_date,b.transaction_date) tran_date, a.assignment_id, nvl(a.item,b.item)item_no, nvl(a.item_desc,b.item_desc)item_desc, nvl(a.tax_category,b.tax_category)tax_category, nvl(a.tax_category_desc,b.tax_category_desc) tax_category_desc, a.vat_code master_tax_code, a.vat_rate master_tax_rate, a.master_bas_tax_code, a.master_bas_tax_rate, a.master_add_tax_code, a.master_add_tax_rate, nvl(a.application_ord,b.igtax_seq_no) tax_application_order, a.application_ord, b.igtax_seq_no, b.igtax_code tran_tax_code, b.igtax_rate tran_tax_rate, b.tran_bas_tax_code, b.tran_bas_tax_rate, b.tran_add_tax_code, b.tran_add_tax_rate, nvl(a.vat_region,b.vat_region) vat_region, nvl(a.vat_region_name,b.vat_region_name) vat_region_name from ( select resa.store, resa.store_name, resa.tran_date transaction_date, resa.tran_no, resa.tran_seq_no, resa.item, resa.item_desc, resa.item_seq_no, resa.tax_category, resa.tax_category_desc, ta.vat_code, case when ((ta.vat_code between '100' and '135') or (ta.vat_code between '150' and '235')) then ta.vat_code end master_bas_tax_code, case when ((ta.vat_code between '100' and '135') or (ta.vat_code between '150' and '235')) then vr.vat_rate end master_bas_tax_rate, case when ((ta.vat_code between '136' and '149') or (ta.vat_code between '236' and '249')) then ta.vat_code end master_add_tax_code, case when ((ta.vat_code between '136' and '149') or (ta.vat_code between '236' and '249')) then vr.vat_rate end master_add_tax_rate, vr.vat_rate, --- ta.assignment_id, ta.application_ord, resa.vat_region, resa.vat_region_name from resa, tax_assignment ta ,vat_code_rates vr where ta.tax_category = resa.tax_category and ta.from_vat_region = resa.vat_region and ta.tax_type in ('31','32') and ta.to_taxpayer_type = 11 and ta.activate_date < resa.tran_date and (ta.inactivate_date is null or ta.inactivate_date > resa.tran_date) and ta.vat_code = vr.vat_code ) a full outer join ( select resa.store, resa.store_name, resa.business_date, resa.tran_date transaction_date, resa.tran_seq_no, resa.tran_no, resa.item_seq_no, resa.item item, resa.item_desc, resa.qty, resa.unit_retail, resa.tax_category, resa.tax_category_desc, stg.igtax_seq_no, stg.qty stg_qty, igtax_code, igtax_rate, case when ((stg.igtax_code between '100' and '135') or (stg.igtax_code between '150' and '235')) then stg.igtax_code end tran_bas_tax_code, case when ((stg.igtax_code between '100' and '135') or (stg.igtax_code between '150' and '235')) then stg.igtax_rate end tran_bas_tax_rate, case when ((stg.igtax_code between '136' and '149') or (stg.igtax_code between '236' and '249')) then stg.igtax_code end tran_add_tax_code, case when ((stg.igtax_code between '136' and '149') or (stg.igtax_code between '236' and '249')) then stg.igtax_rate end tran_add_tax_rate, unit_igtax_amt, resa.vat_region, resa.vat_region_name from resa, sa_tran_igtax stg where stg.tran_seq_no =resa.tran_seq_no and stg.item_seq_no = resa.item_seq_no and stg.store = resa.store and stg.day= resa.day ) b on a.tran_seq_no = b.tran_seq_no and a.tran_no = b.tran_no and a.store = b.store and a.item = b.item and a.item_seq_no = b.item_seq_no and a.application_ord = b.igtax_seq_no where nvl(a.vat_code,'0') <> nvl(b.igtax_code,'0') or (nvl(a.vat_code,'0') = nvl(b.igtax_code,'0') and nvl(a.vat_rate,0) <> nvl(b.igtax_rate,0)) ) group by store, store_name, tran_date, assignment_id, item_no, item_desc, tax_category, tax_category_desc, master_bas_tax_code, master_bas_tax_rate, master_add_tax_code, master_add_tax_rate, tran_bas_tax_code, tran_bas_tax_rate, tran_add_tax_code, tran_add_tax_rate, vat_region, vat_region_name

First 7 bill and card no for Specific Store

select a.store,s.store_name,s.store_open_date ,min(RANK1_TRAN_NO) R1_TRAN_NO,min(RANK1_TRAN_NO_1)R1_CARD_NO , min(rank2_Tran_no) R2_TRAN_NO,min(rank2_Tran_no_1) R2_CARD_NO, min( rank3_Tran_no) R3_TRAN_NO, min( rank3_Tran_no_1) R3_CARD_NO, min( rank4_Tran_no) R4_TRAN_NO,min(rank4_Tran_no_1 ) R4_CARD_NO, min(rank5_Tran_no ) R5_TRAN_NO,min( rank5_Tran_no_1) R5_CARD_NO ,min(rank6_Tran_no ) R6_TRAN_NO,min( rank6_Tran_no_1) R6_CARD_NO ,min(rank7_Tran_no ) R7_TRAN_NO,min( rank7_Tran_no_1) R7_CARD_NO from ( select store, (case when ro = 1 then tran_no end)RANK1_TRAN_NO,(case when ro = 1 then card_no end) RANK1_TRAN_NO_1 , (case when ro = 2 then tran_no end)rank2_Tran_no,(case when ro = 2 then card_no end) rank2_Tran_no_1 ,(case when ro = 3 then tran_no end)rank3_Tran_no,(case when ro = 3 then card_no end) rank3_Tran_no_1 ,(case when ro = 4 then tran_no end)rank4_Tran_no,(case when ro = 4 then card_no end) rank4_Tran_no_1 ,(case when ro = 5 then tran_no end)rank5_Tran_no,(case when ro = 5 then card_no end) rank5_Tran_no_1 ,(case when ro = 6 then tran_no end)rank6_Tran_no,(case when ro = 6 then card_no end) rank6_Tran_no_1 ,(case when ro = 7 then tran_no end)rank7_Tran_no,(case when ro = 7 then card_no end) rank7_Tran_no_1 from ( select store,tran_no, tran_datetime, card_no,ro from ( select store,tran_no, tran_datetime, card_no,rank ro from ( select store,tran_no,tran_datetime, ref_no3 card_no, dense_rank() over ( partition by store order by tran_datetime ) rank from ( select * from rmsanpowner.abrl_sa_tran_head_anp where tran_type in('SALE','RETURN') and status = 'P' and store in ( 1628 ) and ref_no3 like '10%' union select * from rmsowner.sa_tran_head@rmsanp2rmsprod where tran_type in('SALE','RETURN') and status = 'P' and store in ( 1628 ) and ref_no3 like '10%' ) ) where rank <= 7 ) ) group by store, (case when ro = 1 then tran_no end),(case when ro = 1 then card_no end) ,(case when ro = 2 then tran_no end),(case when ro = 2 then card_no end) ,(case when ro = 3 then tran_no end),(case when ro = 3 then card_no end) ,(case when ro = 4 then tran_no end),(case when ro = 4 then card_no end) ,(case when ro = 5 then tran_no end),(case when ro = 5 then card_no end) ,(case when ro = 6 then tran_no end),(case when ro = 6 then card_no end) ,(case when ro = 7 then tran_no end),(case when ro = 7 then card_no end) )a,store@rmsanp2rmsprod s where a.store = s.store group by a.store ,s.store_name,s.store_open_date