2015-05-07 226 views
0

我正在使用PL-SQL。我有一個名爲objectlist的表。在此表中,我確實有序列號,名稱爲changeno,每個序列號都有生產日期。選擇一列中具有相同值但第二列中值不同的行

我已經看到一些序列號有不同的生產日期。我想列出具有不同生產日期的序列號

可以說串行1234在表中有兩個生產日期。所以,我的SQL應該顯示像

1234 12.01.2015 
1234 01.12.2015 

我不是哪些連續劇有超過一個生產日期。請向我展示如何找到它。

+1

爲什麼你認爲你需要一個存儲過程嗎? –

回答

0

其中一個可能性是使用分析功能count()這裏:

select changeno, pdate 
    from (
    select changeno, pdate, count(1) over (partition by changeno) cnt 
     from objectlist) 
    where cnt > 1 order by changeno, pdate 

SQLFiddle demo

如果您需要這PLSQL比投入過程,函數或塊的查詢:

begin 
    for c in (
    select changeno, pdate 
     from (
     select changeno, pdate, count(1) over (partition by changeno) cnt 
      from objectlist) 
     where cnt > 1 order by changeno, pdate) 
    loop 
    dbms_output.put_line(lpad(c.changeno, 10)||' '||c.pdate); 
    end loop; 
end; 
相關問題