0

このような結果のクエリがあります

No    date           No.PO     product    type       div         price
1.      01-10-2012   |    AAA1  |     X1   |    1   |     SBS   |      100
2.      09-10-2012   |    ABA1  |     X1   |    2   |     SBS   |      150
3.      11-10-2012   |    ACC1  |     X1   |    1   |     SBS   |      110
4.      15-10-2012   |    ACD1  |     X1   |    1   |     DBS   |      115
5.      20-10-2012   |    ADA1  |     X1   |    1   |     SBS   |      112
6.      23-10-2012   |    AFA1  |     X1   |    2   |     SBS   |      160
7.      27-10-2012   |    AHA1  |     X1   |    1   |     SBS   |      120

そして数千の記録。. .

結果は次のように表示されるはずです

No        date           No.PO     product    type        div         price
1.      27-10-2012   |    AHA1  |     X1   |    1   |     SBS   |       120
2.      23-10-2012   |    AFA1  |     X1   |    2   |     SBS   |       160
3.      15-10-2012   |    ACD1  |     X1   |    1   |     DBS   |       115

ルールはこちら

  1. 商品タイプとdivで区別
  2. 表示したい最後のトランザクションのみ (重複する製品、タイプ、および div データの中で最大の日付を意味します)
  3. すべてのフィールド (日付、注文番号、製品、タイプ、部門、価格) を表示する必要があります

うまくいけば、私の説明は今明確です。.

誰でも正しいクエリで私を助けることができますか?

4

1 に答える 1

0

クエリを試して結果を確認してください。単なる推測です。

SELECT * FROM(
    SELECT
        ROW_NUMBER() OVER (Partition by [Type], [Div] ORDER BY [Date] DESC) RowNum,
        [Date], 
        [No.PO], 
        [Product], 
        [Type], 
        [Div], 
        [Price] 
    FROM TABLE_Name
)x WHERE RowNum=1 
ORDER BY [Date] DESC
于 2013-01-09T04:36:38.630 に答える