Выберите "Последняя запись" в конструкторе отчетов SSRS 3.0.

Попытка получить последнюю / последнюю запись из ShipHead.Shipdate вместо всех записей. Как сделать последнюю запись с этим запросом?

SELECT
  OrderRel.ReqDate
 ,OrderHed.EntryPerson
 ,ShipHead.ShipDate
 ,Customer.Name
 ,ShipDtl.OrderNum
 ,ShipDtl.OrderLine
 ,ShipDtl.OrderRelNum
  FROM
   OrderHed
    INNER JOIN OrderDtl
    ON OrderHed.Company = OrderDtl.Company AND OrderHed.OrderNum = OrderDtl.OrderNum
    INNER JOIN OrderRel
    ON OrderDtl.Company = OrderRel.Company AND OrderDtl.OrderNum = OrderRel.OrderNum AND         OrderDtl.OrderLine = OrderRel.OrderLine
  INNER JOIN ShipDtl
ON OrderRel.Company = ShipDtl.Company AND OrderRel.OrderNum = ShipDtl.OrderNum AND     OrderRel.OrderLine = ShipDtl.OrderLine AND OrderRel.OrderRelNum = ShipDtl.OrderRelNum
  INNER JOIN ShipHead
   ON ShipDtl.Company = ShipHead.Company AND ShipDtl.PackNum = ShipHead.PackNum
   INNER JOIN Customer
   ON ShipHead.Company = Customer.Company AND ShipHead.CustNum = Customer.CustNum
  WHERE
OrderRel.OrderNum = 603205

1 ответ

Вы можете попробовать следующее. Если вы хотели получить последнюю запись с датой для каждого участника записи, измените на B:

SELECT 
    X.ReqDate,
    X.EntryPerson,
    X.ShipDate,
    X.Name,
    X.OrderNum,
    X.OrderLine,
    X.OrderRelNum
FROM
  (
  SELECT
    ORl.ReqDate,
    OH.EntryPerson,
    SH.ShipDate,
    rn = row_number() OVER(ORDER BY SH.ShipDate DESC),
    --rn = row_number() OVER(PARTITION BY OH.EntryPerson ORDER BY SH.ShipDate DESC) --<<B
    C.Name,
    SD.OrderNum,
    SD.OrderLine,
    SD.OrderRelNum
  FROM
    OrderHed OH
    INNER JOIN OrderDtl OD ON 
        OH.Company = OD.Company AND 
        OH.OrderNum = OD.OrderNum
    INNER JOIN OrderRel ORl ON 
        OD.Company = ORl.Company AND 
        OD.OrderNum = ORl.OrderNum AND         
        OD.OrderLine = ORl.OrderLine
    INNER JOIN ShipDtl SD ON 
        ORl.Company = SD.Company AND 
        ORl.OrderNum = SD.OrderNum AND     
        ORl.OrderLine = SD.OrderLine AND 
        ORl.OrderRelNum = SD.OrderRelNum
    INNER JOIN ShipHead SH ON
        SD.Company = SH.Company AND 
        SD.PackNum = SH.PackNum
    INNER JOIN Customer C ON 
        SH.Company = C.Company AND 
        SH.CustNum = C.CustNum
    WHERE
      ORl.OrderNum = 603205
  ) X
WHERE X.rn = 1

PS почему бы вам не использовать более короткие псевдонимы - это часть псевдонимов

Другие вопросы по тегам