Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Bug in SQL Union
Message
From
28/02/2007 23:42:46
Neil Mc Donald
Cencom Systems P/L
The Sun, Australia
 
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Environment versions
Visual FoxPro:
VFP 9 SP1
OS:
Windows XP SP2
Miscellaneous
Thread ID:
01199863
Message ID:
01199880
Views:
25
Hi Sergey,
Thanks, it was the cursor name of "a", when I changed it to nomaster the problem stopped.
I will try the other things later.

Have a good day.

>1. There's no need to include DISTINCT because UNION does implicit DISTINCT on the result set
>2. For EXISTS type subqueries there's no reason to use anything but '*' in the field list because they don't return any record set
>3. The 'a' is not a good name for a cursor because it conflicts with the default name for the first workarea.
>
>SELECT table1.f1 FROM table1 ;
>  WHERE NOT exist ;
>    (SELECT * FROM table3 WHERE table3.f1 = table1.f1) ;
>UNION ;
>SELECT table2.f1 FROM table2 ;
>  WHERE NOT exist ;
>    (SELECT * FROM table3 WHERE table3.f1 = table2.f1) ;
>INTO CURSOR crsResult NOFILTER
>
>>
>>I run the following SQL, then when I browse I have spurious entry in record 1 of the cursor which contains the value from the last record in the table from the second select.
>>
>>When I up or download arrow or click on a record the value follows the cursor, once the cursor moves on the field resets back to its original value, has anyone seen this, or what am I doing wrong.
>>
>>Table1 & 2 are identical structure wise and table3 is the Master file for Table 1 & 2's F1 field.
>>
>>I am trying to find all the entries that don't have a Table3 master file record, the client decided to do some editing thru the back door and broke all the links.
>>
>>
>>SELECT table1.f1 DISTINCT FROM table1 ;
>>WHERE NOT exist ;
>>(SELECT table1.f1 FROM table3 WHERE table3.f1 = table1.f1) ;
>>UNION ;
>>SELECT table2.f1 DISTINCT FROM table2 ;
>>WHERE NOT exist ;
>>(SELECT table2.f1 FROM table3 WHERE table3.f1 = table2.f1) ;
>>INTO CURSOR a NOFILTER
>>
>>
>>Thanks in advance
Regards N Mc Donald
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform