2016-10-11 15 views
0

私はあなたが私の問題を手伝ってくれることを願っています。 は今、私は以下のクエリを持っている:Oracle SQLクエリのステップ番号

SELECT ID, (ROW_NUMBER() OVER(ORDER BY ID)), Date 
FROM MYTABLE; 

出力は次のとおりです。

No. Identification No. Date 
1 100010    11-Jul-15 
2 100011    7-Jul-15 

Iが出力になりたい、これは可能です?:

No. Identification No. Date 
1 100010    7-Jul-15 
2 100010    10-Jul-15 
3 100010    11-Jul-15 
1 100011    7-Jul-15 
2 100011    10-Jul-15 
3 100011    11-Jul-15 
+0

提供されているサンプルデータにはレコードが不足している必要があります。 –

+0

出力のロジックが明確ではありません。なぜ7月8日と9日? 7月3日など別の行がある場合はどうなりますか? – Aleksej

+0

どういうわけか、あなたのSQL文が出力にどのように接続されているのかわかりません - ROW_NUMBER()の出力は確実にあなたの "Identification No"にはなりません... ROW_NUMBER()の出力をso: ROW_NUMBER()OVER(パーティションBY ORDER BY ID) – sers

答えて

0

あなたが必要日付のリスト:

select d.dte, t.id, 
     row_number() over (partition by id order by dte) as num 
from t cross join 
    (select date '2015-07-07' as dte from dual union all 
     select date '2015-07-10' as dte from dual union all 
     select date '2015-07-11' as dte from dual 
    ) d; 
+0

私はパーティションを追加して、それは働いた。ご協力いただきありがとうございます。 –

0

row_number()を分割する必要があります

SELECT ROW_NUMBER() OVER(PARTITION BY Id ORDER BY Date) as Row_ord, 
     ID, 
     Date 
FROM MYTABLE; 
+0

ありがとう!、私はIDでパーティションを追加し、それは働いた –