Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Very Complex SQL - My Brain Hurts
Message
From
06/07/2006 13:31:44
 
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Environment versions
Visual FoxPro:
VFP 7 SP1
OS:
Windows XP SP2
Database:
Visual FoxPro
Miscellaneous
Thread ID:
01133780
Message ID:
01134212
Views:
15
Good news, Sergey. the first "hit" of the SQL seems to be working just fine, thanks.

By "join" do you mean doing an SQL UNION? Only, don't the 2 tables to be unioned need to have an identical layout.

I've joined identically laid out, say, results tables together, to form a mega table but I've never joined them to "merge" them, appending more fields to the first, and work out a calculation on the merged data (e.g. passenger nos * multiplier). Iguess y SQL just hasn't had to do this as yet.

Terry

>You can join resulting cursor from my select with Op-class on Operator and Class and pull multiplier.
>
>>
>>Sorry, I've been busy on other stuff today. Thanks for the SQL.
>>
>>How to pull "multiplier" from the the Op-class? Well the class code is given to the operators by the ETM manufacturer, in hex form, and is programmed into the ETM. Now one operator may use code XXX to mean "half-day cheap return" whereas another may use it for "county youth card", for instance. Hence, a code isn't unique but can only be compounded with the op # to give an unique key. So it's a matter of:
>>
>>from the ETMDATA rec, getting the class# and op#
>>Using this to find the approp. class on the Op-Class table and thus the multiplier
>>
>>SO how could the getting of that be slotted into your SQL ? :-)
>>
>>(PS Have I told you I love you today? :-)
>>
>>>Hi Terry
>>>
>>>I still don't understand how to pull "multiplier" from the the Op-class table because of multiple records per op# and class#. Anyway, below is a basic query that should get you started. You can calculate totals/%'s in the report itself using the group footers/Report variables.
>>>SELECT Operator, Route, Class, ;
>>>	SUM(IIF(BETWEEN(etmdate, ldStart1, ldEnd1), Notickets, 0000000000)) AS Passengers1, ;
>>>	SUM(IIF(BETWEEN(etmdate, ldStart2, ldEnd2), Notickets, 0000000000)) AS Passengers2 ;
>>>FROM ETMData ;
>>>WHERE etmdate BETWEEN ldStart1 and ldEnd1 OR etmdate BETWEEN ldStart2 and ldEnd2 ;
>>>GROUP BY Operator, Route, Class
>>>
>>>
- Whoever said that women are the weaker sex never tried to wrest the bedclothes off one in the middle of the night
- Worry is the interest you pay, in advance, for a loan that you may never need to take out.
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform