Ferry said the following on 20/10/05 10:43 AM:
> pak m4z3,
> tampaknya pernyataan problem dan result set yg diinginkan 'kurang' jelas
> bagi saya.
> shg saya menduga MUNGKIN yang pak m4z3 maksudkan adalah begini:....
> 
> Asumsi saya:
>  - ORDER_NO dan REL_NO (mungkin SEQUENCE juga) mengidentifikasi satu PROCESS
> yang harus End-to-end.
>  - Payment atas purchase diindikasikan LUNAS jika ada 2 row di View.
>  - ORDER_NO, REL_NO, DIRECTION menunjukkan masuknya barang (+) dan adanya
> pembayaran (-).
>     shg jika hanya ada 1 row yg berisi ORDER_NO dan REL_NO dipastikan ROW
> ini OUTSTANDING.
>  - Payment dilaksanakan per ORDER_NO dan langsung LunaS atau QTY ORDERED (+)
> = QTY PAYED(-)
>  - Indikasi LUNAS (Bukan Outstanding) terdeteksi jika ada 2 row
>    yang memiliki ORDER_NO dan REL_NO yang sama. Jika row ini memiliki tgl
> tranx utk
>    BULAN YG DIMINTA maka row ini DITAMPILKAN, sebaliknya row ini TIDAK
> DITAMPILKAN (sbg result set).
>  - Indikasi OUTSTANDING = jika hanya ada 1 row yang berisi ORDER_NO dan
> REL_NO .

Dugaan Pak Ferry benar, ini yg saya maksud :)

> drop table tmp purge;
> create table tmp (dated date, TRAN_CODE varchar2(10),
>                   ORDER_NO NUMBER, REL_NO NUMBER);
> 
> ALTER SESSION SET NLS_DATE_FORMAT ='dd/mm/rr';
> insert into tmp VALUES ('05-01-05', 'ARR-NONINV', 10256, 1);
> insert into tmp VALUES ('28/02/05' ,'SUPPPAY', 10256, 1);
> insert into tmp VALUES ('05/01/05','ARR-NONINV', 10256, 2);
> insert into tmp VALUES ('28/02/05','SUPPPAY' , 10256, 2);
> insert into tmp VALUES ('15/07/05', 'ARR-NONINV', 11213, 1);
> insert into tmp VALUES ('30/07/05', 'SUPPPAY', 11213, 1);
> insert into tmp VALUES ('30/07/05', 'ARR-NONINV', 21551, 1);
> insert into tmp VALUES ('08/06/05', 'ARR-NONINV', 11111, 1);
> 
> Untuk bulan ini
>    SQL> SELECT * FROM tmp WHERE TO_CHAR(dated,'rrrrmm') = '200507';
> 
> DATED    TRAN_CODE    ORDER_NO     REL_NO
> -------- ---------- ---------- ----------
> 15/07/05 ARR-NONINV      11213          1
> 30/07/05 SUPPPAY         11213          1
> 30/07/05 ARR-NONINV      21551          1
> 
> 
> Query ini menghasilkan result set semua yang outstanding, kecuali bulan-thn
> yg diminta
> utk bulan sampai dengan bulan-tahun ini, dapat dicoba yaa....
> SQL>    SELECT order_no, rel_no, COUNT (*)    FROM tmp
>   2   WHERE TO_CHAR(dated,'rrrrmm') <> '200507'
>   3  GROUP BY (order_no, rel_no)
>   4  HAVING COUNT (*) =1;
> 
>   ORDER_NO     REL_NO   COUNT(*)
> ---------- ---------- ----------
>      11111          1          1
> 
> Sekarang result set itu dapat di UNION, namun dibawah ini saya gunakan
> fungsi analitik
> SQL> SELECT *
>   2    FROM (
>   3        SELECT dated, order_no,rel_no,
>   4          COUNT(*) OVER (PARTITION BY order_no, rel_no) as chk
>   5         FROM tmp)
>   6    WHERE TO_CHAR(dated,'rrrrmm') = '200507' OR
>   7       (chk =1 AND TO_CHAR(dated,'rrrrmm') <> '200507');
> 
> DATED      ORDER_NO     REL_NO        CHK
> -------- ---------- ---------- ----------
> 08/06/05      11111          1          1
> 15/07/05      11213          1          2
> 30/07/05      11213          1          2
> 30/07/05      21551          1          1

OK thank atas masukannya, saya akan pelajari sintak SQL buatan
Pak Ferry.

> ferry sends.

-- 
m4z3


------------------------ Yahoo! Groups Sponsor --------------------~--> 
Fair play? Video games influencing politics. Click and talk back!
http://us.click.yahoo.com/T8sf5C/tzNLAA/TtwFAA/PhFolB/TM
--------------------------------------------------------------------~-> 

--
-----------I.N.D.O - O.R.A.C.L.E---------------
Keluar: [EMAIL PROTECTED]
Website: http://indo-oracle.lizt.org (NEW)
-----------------------------------------------

Bergabung dengan Indonesia Thin Client User Groups, 
Terminal Server, Citrix, New Moon Caneveral, di:
http://indo-thin.vze.com 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/indo-oracle/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 




Kirim email ke