如何过滤主要代表

时间:2015-05-26 01:49:52

标签: sql

我需要过滤下面的任何行,其中 订单#出现时有多个代表,我们希望在日期时间内列出清单 这样

order#  Ordrep orddate   ordtime   ordsalescodes
123     222    20150501  080000    CHT
123     333    20150501  060000    WEB
123     333    20150505  110000    sls

这里我们想要代表333行而不是任何其他代表,但我们确实需要所有333行。

Select Ord.Num
       ,Ord.date
       ,Ord.Time
       ,Ord.Amt
       ,Ord.Rep
       ,Ord.SalesCode
FROM OrdersTable

1 个答案:

答案 0 :(得分:0)

如果没有旧行具有相同的订单#:

,请选择一行
select Ord.Num
       ,Ord."date"
       ,Ord."Time"
       ,Ord.Amt
       ,Ord.Rep
       ,Ord.SalesCode
FROM OrdersTable Ord
WHERE NOT EXISTS (select 1 from OrdersTable ord2
                  where Ord.Num = ord2.Num
                    and (Ord2."date" < Ord."date"
                         or (Ord2."date" = Ord."date"
                             and Ord2."time" < Ord."time")))

请注意,日期和时间是标准SQL中的保留字,这就是它们在上面“分隔”的原因。

另外,为什么要为日期和时间分隔列?我会为时间戳添加一列。