Subject | SQL question - getting "last" record |
---|---|
Author | Kok_BG |
Post date | 2009-09-04T15:17:29Z |
Hi group,
Can someone help me to optimize this query:
select first 1 skip 0
(tsd."Price" - (tsd."Price"* tsd."Discount"/100))
from
"tSupplyDET" tsd left join "vSupplyGRP" tsg left join "tOperationType" top
on tsg."OpType"= top."Id"
on tsd."GRPId"=tsg."Id"
where tsd."ArticleId" = 31 and
(top."Pay"='Y' or top."Profit"='Y')
order by tsg."DocumentDate" desc, tsd."Id" desc
As you see, i load all records, sort it by date and fetch only the first one, which seems very unfriendly for the server.
Actually I need only some fields ("Price" and "Discount") from the "last" record, based on the criteria shown in the query.
Thanks a lot.
Can someone help me to optimize this query:
select first 1 skip 0
(tsd."Price" - (tsd."Price"* tsd."Discount"/100))
from
"tSupplyDET" tsd left join "vSupplyGRP" tsg left join "tOperationType" top
on tsg."OpType"= top."Id"
on tsd."GRPId"=tsg."Id"
where tsd."ArticleId" = 31 and
(top."Pay"='Y' or top."Profit"='Y')
order by tsg."DocumentDate" desc, tsd."Id" desc
As you see, i load all records, sort it by date and fetch only the first one, which seems very unfriendly for the server.
Actually I need only some fields ("Price" and "Discount") from the "last" record, based on the criteria shown in the query.
Thanks a lot.