如何检索数据相同的记录

时间:2016-08-05 15:04:02

标签: sql sql-server

我在下面有这个查询,

SELECT  DISTINCT
    OD.[Customer]
    ,OD.[OrderNumber] 'Order#'
    ,OD.[Shipper]
    ,OD.[Product]
    ,OD.[Dock] 'Dock/Track'
    ,OD.[Lines] 'Berth/Position'
    ,[TAMS].[fnc_GetDelayCountByOrderNumber](OD.OrderNumber) 'Delays' 
    ,OD.[ScheduledArrival] 'Sched .Arrival'
    ,OD.ActiveCheckPointStatus 'Active CheckPoint'
    ,OD.[CheckPointStatus] 'CheckPoint Status'
    ,OD.[ContractNumber]
    ,OD.[Direction]
    ,OD.[Volume]
    ,OD.[PreviousCheckPointStatus]
    ,OD.[CheckPointType]
    ,OD.[SourceContainer]
    ,OD.[DestinationContainer]
    ,OD.[UnitsOfMeasure]
    ,OD.ConveyanceID
    ,OD.TripId
    ,OD.NumberOfConveyance
    ,OD.Volume
    FROM TAMS.OrderDetail OD
    WHERE OrderNumber= 8394

此查询返回4条记录

enter image description here

此查询具有相同的ordernumber(8394),相同的conveyanceid(178047),相同的tripid(211583)。但唯一不同的是产品(AGGREGATE,LIMESTONE)

因此,我没有显示四条记录,而是只显示两种不同产品的记录(Aggregate,Limestone)。

应该看起来像

enter image description here

1 个答案:

答案 0 :(得分:0)

在您的查询中,您正在请求DISTINCT VOLUME以及其他所有内容,如果您要在查询中保留distinct,那么您将需要删除卷列,因为只要这些卷不同,查询将返回那些四个不同的行。只有其他选项可以按客户,订单等进行分组,并选择最大/最小/平均音量,但我无法通过您的问题判断您是否需要返回音量。我注意到你的第二个截图中没有包含VOLUME,所以也许你不需要它?