Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
SQL error
Message
 
 
To
21/04/2015 16:13:15
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Title:
Environment versions
Visual FoxPro:
VFP 9 SP2
OS:
Windows Server 2012
Network:
Windows 2008 Server
Database:
MS SQL Server
Application:
Web
Miscellaneous
Thread ID:
01618877
Message ID:
01618913
Views:
50
Add redeem.Dredeemdat IS NOT NULL condition to that select.

>I should have added that the phrase is returning wrong values only when there is a group by and no order by.
>
>>But they are not. It seems I had it backwards. It works as long as there is an ORDER BY. With no ORDER BY, the numbers are wild.
>>
>>I ran the query with no grouping to see if I could tell what was happening. What is happening is that without the ORDER BY, this phrase:
>>
>>
>>				WHERE b.control_no in ;
>>					(SELECT towfky FROM redeem WHERE redeem.dredeemdat>= {01/01/2014} AND redeem.dredeemdat<= {12/31/2014}) ;
>>
>>
>>
>>is responding true and including records where redeem.dredeemdat is empty!
>>
>>>I agree with Boris. If the only change in these two statements is the added ORDER BY, then it should not matter and results should be the same.
>>>
>>>>It's one of those morning after an all-nighter (which I am getting too old for) and I would appreciate it if somebody would point out my error, probably obvious:
>>>>
>>>>Works:
>>>>
>>>>
>>>>       * REPLACED ACTUAL TABLE NAMES FOR THIS EXAMPLE:
>>>>	SELECT a.ccompany, a.custcode, COUNT(b.req_date) as nTotal,  ;
>>>>					SUM(b.nstorage) as nStorage, SUM(b.tow_chrg) as nTows ;
>>>>				FROM a;
>>>>				JOIN b ON b.custcode = a.custcode;
>>>>				WHERE b.control_no in ;
>>>>					(SELECT towfky FROM redeem WHERE redeem.dredeemdat>= {01/01/2014} AND redeem.dredeemdat<= {12/31/2014}) ;
>>>>				GROUP BY 1,2 ;
>>>>				into cursor temp1 readwrite 
>>>>
>>>>
>>>>Now add the ORDER and the totals go haywire
>>>>
>>>>
>>>>       * REPLACED ACTUAL TABLE NAMES FOR THIS EXAMPLE:
>>>>	SELECT a.ccompany, a.custcode, COUNT(b.req_date) as nTotal,  ;
>>>>					SUM(b.nstorage) as nStorage, SUM(b.tow_chrg) as nTows ;
>>>>				FROM a;
>>>>				JOIN b ON b.custcode = a.custcode;
>>>>				WHERE b.control_no in ;
>>>>					(SELECT towfky FROM redeem WHERE redeem.dredeemdat>= {01/01/2014} AND redeem.dredeemdat<= {12/31/2014}) ;
>>>>				GROUP BY 1,2 ;
>>>>                                ORDER BY 1,2 ;
>>>>				into cursor temp1 readwrite 
>>>>
>>>>
>>>>TIA
If it's not broken, fix it until it is.


My Blog
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform