Definitely not a good application for SQL.

You can do it. You need to create a view with every unique key and the total of records less than or equal to that key. Then you need to use a second select to find the key where the total is just less than what you need. Then you need to process all records whose key is less than that. However, this requires massive amounts of processing.

By far the better tool for this job is ISAM (otherwise know as "traditional" RPG file I/O).

Joe

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

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.