Home > Archive > MS SQL Server MSEQ > August 2005 > Extracting Latest Date









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author Extracting Latest Date
Jan S via SQLMonster.com

2005-08-04, 3:23 am

I have a db which stores all my sales transactions.
The task is to extract the buy price(price) for each item(ItemCode) where the
date is the latest for each item.

For Example:
Sales Table
ItemCode Qty Price Date
-------------- ----- -------- --------
XYZ 2 23.50 12/03/05
XYZ 3 23.50 13/03/05
XYZ 2 99.99 14/03/05
ABC 14 88.88 01/01/05
RDB 12 77.30 21/04/05
RDB 23 23.35 02/05/05

I would then require only

ItemCode Qty Price Date
-------------- ----- -------- --------
XYZ 2 99.99 14/03/05
ABC 14 88.88 01/01/05
RDB 23 23.35 02/05/05

How do i write a query to extract the data?
Need help with a project of mine....really stuck with this one..Thank you
Hugo Kornelis

2005-08-04, 8:24 pm

On Thu, 04 Aug 2005 07:31:53 GMT, Jan S via webservertalk.com wrote:

>I have a db which stores all my sales transactions.
>The task is to extract the buy price(price) for each item(ItemCode) where the
>date is the latest for each item.

(snip)
>How do i write a query to extract the data?
> Need help with a project of mine....really stuck with this one..Thank you


Hi Jan,

Method #1:
---------
SELECT a.ItemCode, a.Qty, a.Price, a.[Date]
FROM Sales AS a
WHERE NOT EXISTS
(SELECT *
FROM Sales AS b
WHERE b.ItemCode = a.ItemCode
AND b.[Date] > a.[Date])

Method #2:
---------
SELECT a.ItemCode, a.Qty, a.Price, a.[Date]
FROM Sales AS a
WHERE a.[Date] =
(SELECT MAX(b.[Date])
FROM Sales AS b
WHERE b.ItemCode = a.ItemCode)

Method #3:
---------
SELECT a.ItemCode, a.Qty, a.Price, a.[Date]
FROM Sales AS a
INNER JOIN (SELECT ItemCode, MAX([Date]) AS MaxDate
FROM Sales
GROUP BY ItemCode) AS b
ON b.ItemCode = a.ItemCode
AND b.MaxDate = a.[Date]

(And there might even be more methods...)

If performance is important, then test each of these queries a few times
and use the one that's the fastest. Otherwise, use the one that you find
the easiest to understand, as you'll have to maintain it later.

Best, Hugo
--

(Remove _NO_ and _SPAM_ to get my e-mail address)
Jan S via SQLMonster.com

2005-08-11, 3:25 am

Thanks Hugo..Much appreciated


--
Message posted via webservertalk.com
http://www.webservertalk.com/Uwe/Fo...r-mseq/200508/1
Sponsored Links





Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive | Programming forum archive

Copyright 2008 droptable.com