Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
SPT Statement
Message
 
À
04/11/2008 15:48:45
Steven Dyke
Safran Seats USA
Texas, États-Unis
Information générale
Forum:
Visual FoxPro
Catégorie:
Base de données, Tables, Vues, Index et syntaxe SQL
Titre:
Versions des environnements
Visual FoxPro:
VFP 9 SP1
OS:
Windows XP SP1
Network:
Windows 2003 Server
Database:
Visual FoxPro
Divers
Thread ID:
01359628
Message ID:
01359634
Vues:
31
>The following SPT string was suggested a while back and has worked fine until today. Today it hit a part number taht was inspected twice on the same day in which one record shows rejected the other accepted. In this case I only need the accepted returned. What do I need to do to make this happen?
>
>testString = "Select recseq, CASE WHEN faistatus = 1" +;
>" THEN 'Accepted' WHEN faistatus = 2 THEN 'Rejected' ELSE 'SEE ORIGINAL FAI' END" +;
>" As fais, inspectord, dwgrev From webprddt6.drawmfai mt1" +;
>" JOIN ( SELECT webprddt6.drawmfai.partno, MAX(webprddt6.drawmfai.inspectord) AS MaxDate FROM webprddt6.drawmfai GROUP BY webprddt6.drawmfai.partno, webprddt6.drawmfai.vendorcode ) mt3" +;
>" ON mt3.partno = mt1.partno AND mt3.MaxDate = mt1.inspectord" +;
>" Where (mt1.partno = '116405-015' Or mt1.partno = '116405-015') And Left(mt1.vendorcode,5) = 'G7135'"

Steven,
Please next time format your code. It is hard to read and understand (at least for me)
Also why not use TEXT ENDTEXT block when you build such statements. It will be easier for you also:
TEXT TO testString NOSHOW TEXTMERGE PRETEXT 15
     Select recseq, CASE WHEN faistatus = 1
                              THEN 'Accepted'
                         WHEN faistatus = 2
                              THEN 'Rejected'
                    ELSE 'SEE ORIGINAL FAI' END As fais,
            inspectord, dwgrev
     FROM webprddt6.drawmfai mt1
     INNER JOIN (SELECT webprddt6.drawmfai.partno, MAX(webprddt6.drawmfai.inspectord) AS MaxDate
                    FROM webprddt6.drawmfai
                 GROUP BY webprddt6.drawmfai.partno,
                          webprddt6.drawmfai.vendorcode ) mt3
            ON mt3.partno = mt1.partno AND mt3.MaxDate = mt1.inspectord
      WHERE (mt1.partno = '116405-015' Or mt1.partno = '116405-015') And Left(mt1.vendorcode,5) = 'G7135'
ENDTEXT
I have questions here. Is inspectord is datetime?
And if it is datetime what you store there? Only date part of full datetime?
Also what you want as a result for these two situations:

1. The record is first rejected and after that accepted?
2. The record is first accepted and after that rejected?


O, BTW is this a typo here:
mt1.partno = '116405-015' Or mt1.partno = '116405-015'
Both partnos are equal, then why you need OR?
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