2

This is my query:

SELECT ITM.CODE
     , Price
     , STL.DATE_ AS gun
FROM LG_094_ITEMS ITM WITH (NOLOCK)
INNER JOIN LG_094_01_STLINE STL ON ITM.LOGICALREF = STL.STOCKREF
WHERE Price > 0
    AND TRCODE = 1
    AND CANCELLED = 0
    AND INVOICEREF > 0
    AND STL.LINETYPE = 0

I couldn't figure our how to get the latest prices of the codes.

Thanks for your help.

1
  • We can't figure it out either unless you post your table structure and sample data.... Commented Apr 25, 2016 at 13:02

2 Answers 2

3

You can use ROW_NUMBER() here:

SELECT *
FROM (
    SELECT ITM.CODE
         , Price
         , STL.DATE_ AS gun
         , ROW_NUMBER() OVER (PARTITION BY ITM.CODE ORDER BY STL.DATE_ DESC) AS RN
    FROM LG_094_ITEMS ITM WITH (NOLOCK)
    INNER JOIN LG_094_01_STLINE STL ON ITM.LOGICALREF = STL.STOCKREF
    WHERE Price > 0
        AND TRCODE = 1
        AND CANCELLED = 0
        AND INVOICEREF > 0
        AND STL.LINETYPE = 0
) prices
WHERE RN = 1
Sign up to request clarification or add additional context in comments.

Comments

2
SELECT *
FROM (
    SELECT ITM.CODE
         , Price
         , STL.DATE_ AS gun
         , RowNum = ROW_NUMBER() OVER (PARTITION BY ITM.CODE ORDER BY STL.DATE_ DESC)
    FROM LG_094_ITEMS ITM
    INNER JOIN LG_094_01_STLINE STL ON ITM.LOGICALREF = STL.STOCKREF
    WHERE Price > 0
        AND TRCODE = 1
        AND CANCELLED = 0
        AND INVOICEREF > 0
        AND STL.LINETYPE = 0
) t
WHERE t.RowNum = 1

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.