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. 必须显示所有字段(日期、No.PO、产品、类型、div 和价格)

希望我的描述现在很清楚。.

任何人都可以帮助我进行正确的查询吗?

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 回答