MIDRANGE dot COM Mailing List Archive



Home » MIDRANGE-L » February 2013

RE: how to retrieve records and make sure they arrive in RRN sequence



fixed

Wow - that worked!! Union ALL is the ticket. So simple and elegant too.

And I don't have to redesign the database or add fields to the work file!

Not that the DB shouldn't be redesigned - but they want this issue fixed yesterday of course.

This table was designed in the punch card era and it will probably last a few years more - until the ERP is slammed in down the road anyways!

UNION has an added feature of sorting the data - I didn't know that. UNION ALL leaves the data alone - like a CPYF. It simply concatenates a file onto the end of another, which is what I am looking for.


Thanks so much - great idea !!



-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx [mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of Dan Kimmel
Sent: Wednesday, February 13, 2013 10:19 AM
To: Midrange Systems Technical Discussion
Subject: RE: how to retrieve records and make sure they arrive in RRN sequence

Try UNION ALL and see if that preserves your arrival sequence.

UNION eliminates duplicate records in the result; UNION ALL preserves them. It may be the duplicate elimination that is clobbering arrival sequence.

It sounds like what you're really trying to do is order and merge these records by the data and time each was added to its respective file. That *ain't gonna happen* no matter what you do with arrival sequence or rrn.

Arrival sequence is an antiquated, archaic, obsolete notion in modern database. It's been preserved in DB2i but it should be abandoned. If you think you are going to need to order the rows in a table based on the time they were inserted, include a timestamp column with null default now().

-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx [mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of Stone, Joel
Sent: Wednesday, February 13, 2013 9:53 AM
To: Midrange Systems Technical Discussion
Subject: RE: how to retrieve records and make sure they arrive in RRN sequence

A memo is either in the live file or the history file. I am ORDERing be MEMO# then RRN, so dup RRN's between files shouldn't be an issue.

What is the comment about blinders? I would prefer to NOT use RRN. Iseries users normally do a SELECT and the rows appear in arrival sequence.

But for some reason when UNION is introduced, the arrival sequence is lost. I am trying to get the arrival seq with a UNION - if I can do that without RRN that would be great!



-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx [mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of DeLong, Eric
Sent: Tuesday, February 12, 2013 5:11 PM
To: Midrange Systems Technical Discussion
Subject: RE: how to retrieve records and make sure they arrive in RRN sequence

You can order by any field name in the format. RRN is not valid within an order by, unless you incorporate RRN into your column select list.

create table qtemp/memotext as
(select a.*, rrn(a) as rownum from mdcmdct a union select b.*, rrn(b) as rownum from mdcmtx1 b

order by rownum ) with data;

Even then, as Vernon pointed out, you will very likely NOT get an ordered set that you expect. Each table has an RRN 1, so which of these should display first...

Honestly, I think you have RRN blinders on...

-Eric DeLong

-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx [mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of Stone, Joel
Sent: Tuesday, February 12, 2013 5:00 PM
To: Midrange Systems Technical Discussion
Subject: RE: how to retrieve records and make sure they arrive in RRN sequence

Thanks but I have no key - I want to ensure RRN.

I have tried to add ORDER BY RRN but it doesn't seem to like it. Is there a trick to get ORDER BY RRN to work? Must ORDER BY contain only fields in the record?


-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx [mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of DeLong, Eric
Sent: Tuesday, February 12, 2013 4:49 PM
To: Midrange Systems Technical Discussion
Subject: RE: how to retrieve records and make sure they arrive in RRN sequence

Specify an ORDER BY clause after the second statement in your UNION...

Arrival sequence means NOTHING in sql. Never count on it, even if it LOOKS like you're getting what you want. The only way to ensure an ordered result is to specify the ORDER BY clause.

-Eric DeLong

-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx [mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of Stone, Joel
Sent: Tuesday, February 12, 2013 4:33 PM
To: 'Midrange Systems Technical Discussion'
Subject: SQL: how to retrieve records and make sure they arrive in RRN sequence

Normally records seem to arrive in RRN sequence - if no other ORDER BY is stated.

However, when I use UNION to concat two SELECT results together, they are arriving in a random sequence.

How can I assure that the result set is in RRN seq?

However, I don't think I can include RRN in the SELECT because that field is NOT in the result table.

Thanks



create table qtemp/memotext as
(select * from mdcmdct
union
select * from mdcmtx1

) with data;

______________________________________________________________________
This outbound email has been scanned for all viruses by the MessageLabs Skyscan service.
For more information please visit http://www.symanteccloud.com ______________________________________________________________________
--
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.

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


________________________________________________________________________
This inbound email has been scanned for all viruses by the MessageLabs SkyScan
service.
________________________________________________________________________

______________________________________________________________________
This outbound email has been scanned for all viruses by the MessageLabs Skyscan service.
For more information please visit http://www.symanteccloud.com
______________________________________________________________________





Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2014 by MIDRANGE dot 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 here. If you have questions about this, please contact