× 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.



I am really curious as to the application of this logic.

So you just want to select any records with 'AA' and 'EUR' and update them
until you reach 50.000 (fifty thousand (count)) records or until you reach
1.000 (one thousand (sum)).

I don't believe a single sql will do it for you.
Do you have a unique key for this file?

In RPG it is a short Update/Primary file process.

F afile Up

/free
*i02 = *off;
If status = 'AA' and currency = 'EUR';
Count += 1;
Sum += amount;
If count <= 1000 and sum <= 50000;
*in02 = *on;
Status = newstatus
Endif;
Endif;
/end-free

O afile 02
status


(More or less)

Paul Therrien
Andeco Software, LLC
932 Saint Johns Dr
Maryville, TN 37801
225-229-2491
paultherrien@xxxxxxxxxxxxxxxxxx
www.andecosoftware.com

-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx
[mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of Loek Maartens
Sent: Monday, January 10, 2011 6:01 PM
To: midrange-l@xxxxxxxxxxxx
Subject: Re: SQL limit with fetch first together with total amount limit

Hi Joe,

If there are 150.000 records with status A with a total sum of the EUR
amounts 75.000, then the requirement is to select up to a maximum of 50.000
record, with the added condition that the total EUR sum does not exceed
1.000,00.

So, if the sum of the EUR amounts is reached within the first 250 records
than that is the limit in the number of records to select.

This is where I do not see how to do that.

Kind regards,

Loek Maartens.


"Joe Pluta" <joepluta@xxxxxxxxxxxxxxxxx>
wrote in message news:4D2B89A6.4080600@xxxxxxxxxxxxxxxxx...
The generalized approach to this is as follows:

update MYTABLE set field1 = value1 where (keyfields) in
(select keyfields from MYTABLE
group by keyfields having [summary conditions])

With additional selection criteria, it would be:

update MYTABLE set field1 = value1 where (keyfields) in
(select keyfields from MYTABLE
where [selection conditions]
group by keyfields having [summary conditions])
and [selection conditions]

This would total each combination of the key fields and then update the
sets that match your summary conditions. However, your case isn't the
same, because you seem to be limiting the selection based on the key
fields (you only want to update AA/EUR records, and only if the sum of
the AA/EUR records meets the conditions).

In your case, it seems you just want to select the totals into some work
fields, and if they match your conditions go back and update the records
with a second UPDATE.

Joe



Hi group,

I have to update the status field of a group of records where:
A: The status is 'AA'
and B: The currency code is 'EUR'
and C: The total amount of the selection is less than 1000,00
and D: The total number of records selected must be less or equal to
50.000.

Record fields: Recid, Status, Curcode, Amount, Description

Total number of records is 1.000.000

I know that I can limit the selection with FETCH FIRST, and specifying
the
correct status code and currency code can be embeded within the select
clause, but I fail to see how I can limit the selection with a total
amount
as a limit for the selexcted records.

Can anyone show me how to aproach this?

Kind regards,

Loek Maartens.



--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
list
To post a message email:
MIDRANGE-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.





As an Amazon Associate we earn from qualifying purchases.

This thread ...

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.