Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Bug in SQL Union
Message
De
28/02/2007 23:42:46
Neil Mc Donald
Cencom Systems P/L
The Sun, Australie
 
 
Information générale
Forum:
Visual FoxPro
Catégorie:
Base de données, Tables, Vues, Index et syntaxe SQL
Versions des environnements
Visual FoxPro:
VFP 9 SP1
OS:
Windows XP SP2
Divers
Thread ID:
01199863
Message ID:
01199880
Vues:
24
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
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform