If this is your first visit, be sure to check out the FAQ by clicking the link above.
You may have to register before you can post: click the register link above to proceed.
To start viewing messages, select the forum that you want to visit from the selection below.
for a particular date there is an appropriate exchange rate. If rate is not changed for a given date it comes from the last changed date. Now I'd like to do a query to find out what is the current exchange rate for all currencies. I can do it for one currency, say with id 2 like this
SELECT * FROM EXCH_RATE
WHERE id = 2 AND
date_set = (SELECT max(date_set) FROM EXCH_RATE WHERE id = 2)
result:
id | name | amount | rate | date_set
2 c2 100 90 2004-02-01
The question is how to retirieve the last exchange rates for all currencies?
Thank you in advance
I'm not sure of the exact syntax with DB2. In SQL Server, we can do this:
SELECT
id,
name,
amount,
rate,
date_set
FROM
EXCH_RATE er1
INNER JOIN (
SELECT MAX(date_set) AS date_set, id
FROM EXCH_RATE) er2 ON er1.date_set = er2.date_set
AND er1.id = er2.id
__________________
MeanOldDBA
derrickleggett@hotmail.com
When life gives you a lemon, fire the DBA.
SELECT a.id, a.name, a.amount
, a.rate, a.date_set
FROM EXCH_RATE AS a
WHERE a.date_set = (SELECT Max(b.date_set)
FROM EXCH_RATE AS b
WHERE b.id = a.id)
This should work for a specific id or all id values.
???? So will the query I provided. You just need to add a where clause to it if you want to pass a paramater in and only do it for one value. It would be the same with your query.
__________________
MeanOldDBA
derrickleggett@hotmail.com
When life gives you a lemon, fire the DBA.
I don't think that your query will do that on DB2 (UDB or Z-Series, I don't know enough about DB2/400 to have a useful opinion), although I haven't actually tested it. I think that my query will work on all of the DB2 versions (again, I haven't tested that either).