Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Always trips me up!
Message
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
Database:
Visual FoxPro
Divers
Thread ID:
01233129
Message ID:
01233332
Vues:
24
>>Vladimir's suggestion assumed that you have a PK in the child table (not that in proper design you didn't have one).
>
>Yes, and you should always have one. When I was translating that code into Mike's structure I made a typo using wrong key.
>
>BTW, Vladimir Maximov put this nicely into FAQ, but he told me that the idea originates from Igor Korolev.
>So, they both deserve a credit.
>
>BTW, I just used it recently myself the first time
>
>* Idea by Igor Korolev
>SELECT * from curInvoice1 cI ;
>WHERE cI.KyInvoice IN ;
>(SELECT CTOBIN(RIGHT(MAX(PADL(Inv_amount,20,'0')+BINTOC(KyInvoice)),4)) ;
>  			FROM curInvoice1 GROUP BY CheckNum) ;
>ORDER BY cI.CheckNum  INTO CURSOR curInvoice
>
>I needed to pick up one invoice with the maximum amount in case we have several invoices.

For that kind of query I am pretty sure that my suggestion (with complex derived table) will be faster.
That is because (JUST MY OPINION, NOT NEED TO BE TRUE AT ALL)
Because SQL starts from smaller result set and go to the biggest. WHERE clause is executed for every record.
That is why I prefer JOINS instead of WHERE (maybe I am completely wrong).
Against Stupidity the Gods themselves Contend in Vain - Johann Christoph Friedrich von Schiller
The only thing normal about database guys is their tables.
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform