1
 PortPair   caspid  por POD teu ton
  P1-P2        5    P1  P2  9   5000
 P3-P4         5    P3  P4  10  5500
 P1-P2         4    P1  P2  7   4000
 P1-P2         3    P1  P2  5   3000
 P3-P4         3    P3  P4  6   3500
 P3-P4         2    P3  P4  7   4500
 P1-P2         1    P1  P2  3   2500

ここにテーブルがあります。各 PortPair の上位 2 レコードのみの出力を取得したいと考えています。出力は以下のようなものです

 Por    pod PortPair caspID  teu     ton
  P1    P2  P1-P2     5        9    5000
  P1    P2  P1-P2     4        7    4000
  P3    P4  P3-P4     5       10    5500
  P3    P4  P3-P4     3        6    3500

出力テーブルをクエリする方法がわかりません..

誰でも助けてください

4

1 に答える 1

1

これを試して

;WITH cte AS
(
   SELECT 
       ROW_NUMBER() OVER(PARTITION BY PortPair ORDER BY CASPID DESC ) AS rno,
       Por  ,  
       pod, 
       PortPair, 
       caspID , 
       teu   ,  
       ton
   FROM tableName
}

SELECT Por  ,  pod, PortPair, caspID , teu   ,  ton
FROM cte 
WHERE rno<=2

ここでは、降順で適切な列に基づいていますpartitioning。上位 2 組を選択できるようにします。pairordering

于 2013-07-22T10:13:43.153 に答える