选择DISTINCT记录

时间:2010-12-09 21:23:10

标签: sql

我的问题是LAME。我知道!但我无法弄明白呢!这是我想要做的: 我有一组记录,在'JobNumber'和'JobID'中是重复的。这是我的选择记录的查询:

SELECT  dbo.InvoiceLineDetail.JobNumber,
    dbo.InvoiceLineDetail.PatientName,
    dbo.InvoiceLineDetail.CustomerAccountName AS Name,
    COALESCE(InvoiceLineDetail.ShipAddressAddr2 + ' ',
        '') + COALESCE(InvoiceLineDetail.ShipAddressAddr3+' ',
        '') + COALESCE(InvoiceLineDetail.ShipAddressAddr4 +' ',
        '') + coalesce(InvoiceLineDetail.ShipAddressCity +' ',
        '') + COALESCE(InvoiceLineDetail.ShipAddressState +' ',
        '') + COALESCE(InvoiceLineDetail.ShipAddressCountry,
        '') as [Address],
     dbo.InvoiceLineDetail.ShipAddressPostalCode AS ZipCode,
     dbo.JobStatus.JobTableId AS JobID,
     dbo.JobStatus.OrderType,
     dbo.JobStatus.ShipTrackingNumber as Tracking#,
     dbo.JobStatus.ShipMethodTransmitted as TransmitMethod,
     dbo.JobStatus.DateShipTransmitProcessed as DateProcessed,
     dbo.JobStatus.ShipmentProcessedBy as ProcesssedBy,
    dbo.JobStatus.Critical,
    dbo.View_JobsToShipCount.JobsToShip,
    dbo.JobStatus.ShipTransmitStatus as Status,
    dbo.JobStatus.InvoiceStatus,
    dbo.InvoiceLineDetail.Quantity
FROM dbo.View_JobsToShipCount 
LEFT OUTER JOIN dbo.InvoiceLineDetail 
    ON dbo.View_JobsToShipCount.Name = dbo.InvoiceLineDetail.CustomerAccountName 
LEFT OUTER JOIN dbo.JobStatus 
    ON dbo.InvoiceLineDetail.JobID = dbo.JobStatus.JobTableId

WHERE (dbo.InvoiceLineDetail.ChargeGroup = 'LENS') and ((dbo.JobStatus.InvoiceStatus = N'IR') OR
  (dbo.JobStatus.ShipTransmitStatus = N'ReadyToShip'))

现在我希望JobNumber和JobID为UNIQUE值。我得到了两个相同的记录。

感谢您的帮助:)

1 个答案:

答案 0 :(得分:3)

如果所有其他信息都相同,只需在查询中添加“DISTINCT”即可。

注意:表别名真的有助于提高可读性....