Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Select
Message
 
 
À
06/04/2010 04:34:29
Information générale
Forum:
Visual FoxPro
Catégorie:
Base de données, Tables, Vues, Index et syntaxe SQL
Titre:
Re: Select
Versions des environnements
Visual FoxPro:
VFP 9 SP1
OS:
Windows XP
Network:
Windows XP
Database:
Visual FoxPro
Divers
Thread ID:
01458778
Message ID:
01458906
Vues:
33
>HI,
>
>i try add newfileld T.ID # 0 as below i get error message Field "ty2010" does not accept null values
>
>and i need to T1.Nam = T.Nam get exactly nam , i try set exact on and == but not work
>
>
select T.ID,T.Nam, T.ID1, (select sum(Y2010) as YTD from NewTest T1 WHERE   T1.ID#0  AND T1.Nam = T.Nam and T1.ID1 <= T.ID1 ) as YTD from ;
   NewTest T into cursor crsYTD
     
   update NewTest set ty2010 = NVL(YTD,0) ;
         from NewTest inner join crsYTD YTD on NewTest.ID1 = NewTest.ID1 and NewTest.Name = crsYTD.Nam
See the change I made here - used NVL function.

Comment out this code bellow - why do you need it?
>local lnRecNo
>lnRecno = 1
>select NewTest
>scan 
>if between(m.lnRecno, 1, reccount('crsYTD'))
>
>   goto lnRecno in crsYTD
>   replace ty2010 with crsYTD.YTD &&error message Field "ty2010" does not accept null values 
>   endif
>   lnRecno = lnRecno + 1
>ENDSCAN
>
>thanks
>>>Is Name + Month combination unique? yes
>>>And each Name repeats for each month?yes
>>
>>One approach - not good performance
>>
>>   select T.Nam, T.ID1, (select sum(Y2010) as YTD from NewTest T1 where T1.Nam = T.Name and T1.ID1 <= T.ID1) as YTD from 
>>   NewTest T into cursor crsYTD
>>
>>Second approach I already wrote in my other message - use scan and intermediate cursor.
If it's not broken, fix it until it is.


My Blog
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform