2014-12-18 78 views
-1

我試圖找到基於以下一組條件的產品數/產品名稱:找到產品型號

  1. 選擇頂部1 productnumber在XYZ表 其中產品編號(1,2, 3)爲了通過filingdate --only如果最後申請日有這個產品編號

  2. 如果最後申請日沒有在(4,5,6產品編號),應選擇

  3. 如果產品編號不在(4,5,6)中他最後的備案,然後選擇下一個頂部1 productnumber 其中prodcutnumber在(1,2,3)爲了通過filingdate

我如何能在一個查詢中實現這一點,我想case語句BU我被困用它。

的樣本數據:

pnumber fnumber fdate 
1   1  12/31 
2   1  12/10 
1   2  12/10 
4   2  12/11 
5   2  12/12 
7   3  12/12 
1   3  12/11 

結果應該是

pnumber fnumber fdate 
1   1  12/31 
1   2  12/10 
1   3  12/11 
+5

你能告訴我們你試過的東西和一些樣品數據嗎? – Matt

+0

在您的數據示例中還包含不應顯示和解釋原因的值。 「只有當最後的申請日期有這個產品編號」這將是一個很好的例子放在你的樣品集。 –

回答

0

嘗試通過給數據類型爲varchar的FDATE。

SELECT id, 
    funum, 
    fdate 
     FROM (SELECT Row_number() 
      OVER(
       partition BY funum 
       ORDER BY id) rn, 
      * 
      FROM t)p 
    WHERE rn = 1