× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Hi,

Did you need something like this:

Select Key1, Key2, Key3, ...... KeyM, Max(KeyN)
From Table
Where Key4 < Value
Group By Key1, Key2, Key3, ........ KeyM

If you need the whole row, you may add a CTE (Common Table Expression) or
Nested subselect:
1. With CTE
With x as (Select Key1, Key2, Key3, ... KeyM, Max(KeyN) KeyN
From Table
Where Key4 < Value
Group By Key1, Key2, Key3, ..... KeyM)
Select a.*
From x join Table a on x.Key1 = a.Key1
and x.Key2 = a.Key2
and ....
and x.KeyM = a.KeyM
and x.KeyN = a.KeyN;

2. Nested Sub-Select
Select a.*
From (Select Key1, Key2, Key3, ... KeyM, Max(KeyN) KeyN
From Table
Where Key4 < Value
Group By Key1, Key2, Key3, ..... KeyM) x
join Table a on x.Key1 = a.Key1
and x.Key2 = a.Key2
and ....
and x.KeyM = a.KeyM
and x.KeyN = a.KeyN;

Mit freundlichen Grüßen / Best regards

Birgitta Hauser

"Shoot for the moon, even if you miss, you'll land among the stars." (Les
Brown)
"If you think education is expensive, try ignorance." (Derek Bok)
"What is worse than training your staff and losing them? Not training them
and keeping them!"


-----Ursprüngliche Nachricht-----
Von: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx] Im
Auftrag von Dan
Gesendet: Thursday, 28.6 2012 19:52
An: RPG programming on the IBM i / System i
Betreff: Re: Duplicate SETGT / READPE combination in SQL?

Thanks for the hint! I don't use GROUP BY enough to know how to do this,
but I will review the documentation and play with it.

Curious though, did you intend to say "vs", instead of "in conjunction
with"? That may be just my lack of knowledge of GROUP BY talking.

On Thu, Jun 28, 2012 at 1:44 PM, <Tommy.Holden@xxxxxxxxxxxxxxxxxxxxx> wrote:

Perhaps simply using a GROUP BY clause would suffice vs the FETCH
FIRST ROW ONLY


Thanks,
Tommy Holden



From: Dan <dan27649@xxxxxxxxx>
To: "RPG programming on the IBM i / System i" <rpg400-l@xxxxxxxxxxxx>,

Date: 06/28/2012 12:42 PM
Subject: Re: Duplicate SETGT / READPE combination in SQL?
Sent by: rpg400-l-bounces@xxxxxxxxxxxx



Ugghhh. "fetch first row only" worked, but too well. The problem was
that I didn't explain that the SETGT / READPE combination query is
just a small part of a larger query, so I need the "fetch first row
only" to work for each account, not for the entire data set.

I'm thinking maybe common table expression (CTE) might be the way to
go, but I may have to essentially duplicate the main query.

Gonna have to think this one through.

- Dan

On Thu, Jun 28, 2012 at 7:57 AM, <Tommy.Holden@xxxxxxxxxxxxxxxxxxxxx>
wrote:

Add fetch first row only to the statement


Thanks,
Tommy Holden



From: Dan <dan27649@xxxxxxxxx>
To: "RPG programming on the IBM i / System i"
<rpg400-l@xxxxxxxxxxxx>,

Date: 06/27/2012 11:49 PM
Subject: Re: Duplicate SETGT / READPE combination in SQL?
Sent by: rpg400-l-bounces@xxxxxxxxxxxx



I will try this in the morning. How do I restrict the query to
return only one record?

On Wed, Jun 27, 2012 at 1:54 PM,
<Tommy.Holden@xxxxxxxxxxxxxxxxxxxxx>
wrote:

Perhaps something along this line?

Select * from aaFormsVp Where aaComp = :aaComp and aaState =
:aaState
and
aaPLine = :aaPLine
And aaDType = :aaDType And aaRRdate <= :aaRRdate Order By
aaComp, aaState, aaPLine, aaDType, aaRRdate desc

--
This is the RPG programming on the IBM i / System i (RPG400-L)
mailing list To post a message email: RPG400-L@xxxxxxxxxxxx To
subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx Before posting, please take
a moment to review the archives at
http://archive.midrange.com/rpg400-l.


--
This is the RPG programming on the IBM i / System i (RPG400-L)
mailing
list
To post a message email: RPG400-L@xxxxxxxxxxxx To subscribe,
unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx Before posting, please take
a moment to review the archives at
http://archive.midrange.com/rpg400-l.


--
This is the RPG programming on the IBM i / System i (RPG400-L) mailing
list To post a message email: RPG400-L@xxxxxxxxxxxx To subscribe,
unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx Before posting, please take a
moment to review the archives at http://archive.midrange.com/rpg400-l.


--
This is the RPG programming on the IBM i / System i (RPG400-L) mailing
list To post a message email: RPG400-L@xxxxxxxxxxxx To subscribe,
unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx Before posting, please take a
moment to review the archives at http://archive.midrange.com/rpg400-l.


--
This is the RPG programming on the IBM i / System i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx To subscribe, unsubscribe, or
change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives at
http://archive.midrange.com/rpg400-l.



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.