0

こんにちは、疑問を解決するために助けてください。oracle9i で次のような出力が得られます。

S.No   Column1     Column2  Column3  DateCol

1      A            B        C        10/2001 

2      A            B        C        03/2001  

3      B            B        C        02/2001 

4      B            B        C        01/2001

5      A            B        C        03/2000   

しかし、私の実際のシナリオは、構造の下に出力を入力する必要があることです

S.No   Column1     Column2  Column3  DateCol

1      A            B        C        10/2001 

       A            B        C        03/2001  

2      B            B        C        02/2001 

       B            B        C        01/2001

3      A            B        C        03/2000    

クエリを作成する方法がわかりません。構造を取得するには、助けてください。私の学術プロジェクトはすでに期限切れです。誰かが私に解決策を提供してください..よろしくお願いします

4

1 に答える 1

0
CREATE TABLE SCOTT.GROUP_SHOW_ONCE
(
  SR_NO    NUMBER,
  COL1     VARCHAR2(20 BYTE),
  COL2     VARCHAR2(20 BYTE),
  COL3     VARCHAR2(20 BYTE),
  DATECOL  DATE
)

Insert into GROUP_SHOW_ONCE
   (SR_NO, COL1, COL2, COL3, DATECOL)
 Values
   (1, 'A', 'B', 'C', TO_DATE('10/11/2012 00:00:00', 'MM/DD/YYYY HH24:MI:SS'));
Insert into GROUP_SHOW_ONCE
   (SR_NO, COL1, COL2, COL3, DATECOL)
 Values
   (2, 'A', 'B', 'C', TO_DATE('03/11/2012 00:00:00', 'MM/DD/YYYY HH24:MI:SS'));
Insert into GROUP_SHOW_ONCE
   (SR_NO, COL1, COL2, COL3, DATECOL)
 Values
   (3, 'B', 'B', 'C', TO_DATE('02/11/2012 00:00:00', 'MM/DD/YYYY HH24:MI:SS'));
Insert into GROUP_SHOW_ONCE
   (SR_NO, COL1, COL2, COL3, DATECOL)
 Values
   (4, 'B', 'B', 'C', TO_DATE('01/11/2012 00:00:00', 'MM/DD/YYYY HH24:MI:SS'));
Insert into GROUP_SHOW_ONCE
   (SR_NO, COL1, COL2, COL3, DATECOL)
 Values
   (5, 'A', 'B', 'C', TO_DATE('03/11/2011 00:00:00', 'MM/DD/YYYY HH24:MI:SS'));
COMMIT;

---あなたのクエリは好きになります

SELECT DECODE (rnn, LAG (rnn) OVER (ORDER BY TO_NUMBER (rnn)), NULL, rnn) sr_no,col1, col2, col3,datecol
  FROM (SELECT   col1, col2, col3,DATECOL,
                 ROW_NUMBER () OVER (PARTITION BY rn ORDER BY rn) rnn
            FROM (SELECT sr_no, col1, col2, col3,DATECOL,
                         ROW_NUMBER () OVER (PARTITION BY col1, col2, col3 ORDER BY sr_no)  rn
                    FROM group_show_once)
        ORDER BY rnn)
于 2012-06-04T04:50:49.360 に答える