Query sort order question

Posted on 1998-07-31
Last Modified: 2010-04-04

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

Question by:tam97
  • 4
  • 4

Accepted Solution

mayhew earned 100 total points
ID: 1359386
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
order by b.sortorder

Hope this helps!


Author Comment

ID: 1359387
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.


Expert Comment

ID: 1359388
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.    :)
Back Up Your Microsoft Windows Server®

Back up all your Microsoft Windows Server – on-premises, in remote locations, in private and hybrid clouds. Your entire Windows Server will be backed up in one easy step with patented, block-level disk imaging. We achieve RTOs (recovery time objectives) as low as 15 seconds.


Author Comment

ID: 1359389
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

Expert Comment

ID: 1359390
That's fine.  :)

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

Author Comment

ID: 1359391

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

Expert Comment

ID: 1359392
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.


Author Comment

ID: 1359393
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.


Featured Post

ScreenConnect 6.0 Free Trial

Discover new time-saving features in one game-changing release, ScreenConnect 6.0, based on partner feedback. New features include a redesigned UI, app configurations and chat acknowledgement to improve customer engagement!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Delphi XE2 application frozen on Windows 10 10 311
indy Tmemory stream non latin charcter issue 2 110
Making delphi communicate with a c# service 16 103
Delphi Yen format 3 35
This article explains how to create forms/units independent of other forms/units object names in a delphi project. Have you ever created a form for user input in a Delphi project and then had the need to have that same form in a other Delphi proj…
In this tutorial I will show you how to use the Windows Speech API in Delphi. I will only cover basic functions such as text to speech and controlling the speed of the speech. SAPI Installation First you need to install the SAPI type library, th…
Along with being a a promotional video for my three-day Annielytics Dashboard Seminor, this Micro Tutorial is an intro to Google Analytics API data.
The Email Laundry PDF encryption service allows companies to send confidential encrypted  emails to anybody. The PDF document can also contain attachments that are embedded in the encrypted PDF. The password is randomly generated by The Email Laundr…

773 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question