Query sort order question


Hope someone can help.

I want to define a specific sort order a query will return on a Paradox table.

The field that I'm trying to sort(correctly) is the day field i.e Monday, Tuesday....Sunday.

I have a table which hold staff accident records, the index is auto-increment and I don't want to change the table structure. I can set the query to Order By ...and it sorts no problem, but of course it sorts alphabetically which is of no use in this instance.

The sort turns out as Friday, Monday,Thursday etc, I really need the sort to be the logical Monday, Tuesday, Wednesday....

Anyone know how to do this ?

Thanks in advance

Who is Participating?
The way I have done this is to create another table that contains the name of the day and a number representing the search order.


Monday     1
Tuesday     2

Then do a join on the day field in your table with the day name in the new table.

Add on an order by NewTable.Sequence and you'll be good to go.

Scripts I used to test this in MS_SQL:

create table test1(
sequence integer,
day varchar(25) )

create table test2(
dayname varchar(25),
sortorder integer)

insert into test1 values (1,'friday')
insert into test1 values (2,'monday')
insert into test1 values (3,'saturday')
insert into test1 values (4,'thursday')
insert into test1 values (5,'sunday')
insert into test1 values (6,'tuesday')
insert into test1 values (7,'wednesday')

insert into test2 values ('monday',1)
insert into test2 values ('tuesday',2)
insert into test2 values ('wednesday',3)
insert into test2 values ('thursday',4)
insert into test2 values ('friday',5)
insert into test2 values ('saturday',6)
insert into test2 values ('sunday',7)

select day from test1 a, test2 b
where a.day=b.dayname
order by b.sortorder

Hope this helps!

tam97Author Commented:
Hi Mayhew

Thanks for your reply.

I adapted your answer to my program, your've got me onto the right track.

The query result has'nt came out exactly as I had hoped, could you check the following code and advise.

FROM  AccidentTbl.DB, DayTbl.DB
Where AccidentTbl.db.FirstDay=DayTbl.db.Dayname
Order by DayTbl.db.SortOrder

The last line Order by.......SortOrder produced the following error,"Field in order by must be in result set", changing it to DayTbl.db.Dayname did allow the query to operate.

But the result was incorrect, it did add the two fields from the DayTbl, e.g. SortOrder and Dayname but produced 7 copies of each record and not in the logical order.

Any ideas where I have gone wrong.

I'm not sure what the problem is.  If you're doing a 'SELECT *' then SortOrder *should* be in the result set.

I'm going to need to know more.  Could you provide the table descriptions (for the relevant fields at least) and a couple rows of data from each?  Display them exactly as they appear, if you would, and I'll bet we can figure it out.  Please include column names and attributes (eg. varchar(20), etc.).

BTW, the reason you are getting 7 copies of all your records is that your join is failing for some reason so you're getting a full outer join (the 7 rows in your DayTbl times the number of rows in your AccidentTbl).

Looking forward to your reply.    :)
Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

tam97Author Commented:
Hi Mayhew

Thanks for replying.

I said that you had put me onto the right track, well I managed to get round the problem by adding an extra field into the accidentbl, therefore having a sort order within the result table.

But I have to say I know this is just a patch up and would like to find out the correct way to achieve the desired results, so if it's ok with you I'll take up your offer and supply the table details to you.

I'll send them out tonight as I'm just back from my mates house and it's 2.45am way past my bed time !

Thanks for your time.

Best Regards
That's fine.  :)

Feel free to post them here or to e-mail them to me.

tam97Author Commented:

I'm very sorry for not getting back in touch but my system has been down for a while now, and I have just got the motherboard replaced, and am therefore back on line.

I'd like to thank you for your help and award the points to you.

Thanks again.

Regards John
Great, thanks John.  :)

Did you ever get it completely resolved?  I'm still willing to take a look at it if you want me to.

tam97Author Commented:
Hi Don

Thanks for your reply, I didn't wish to bother you further, but if you don't mind I'll e-mail you the table structures shortly.

Thanks again for all your help.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.