Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Select
Message
De
05/04/2010 15:26:16
 
 
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:
01458802
Vues:
29
thank you vey much, it works

but i need to add monthly new select as below id1 mean month i have id1=1 to 12
SELECT ID1 ,Y2010, cast(0 as int) as Row FROM NEWTEST WHERE ID1=3 AND ID>0 into cursor crs3 readwrite
replace all Row with recno() in crs3

how i can fix this select if id1=3 and id1=4 to id1=12
select c2.ID1, c2.Y2010 + c1.Y2010 as Total from crs2 c2 ;
inner join crs1 c1 on c2.Row = c1.Row into cursor crsResult nofilter




>Hmm.
>
>Just add
>
>>>
>>>local lnRecNo
>>>lnRecno = 1
>>>select NewTest
>>>scan for ID1 = 2
>       if between(m.lnRecno, 1, reccount('crsResult'))
>>>    goto m.lnRecno in crsResult
>>>      replace ty2010 with crsResult.Total
>       endif
>>>   lnRecno = lnRecno + 1
>>>endscan
>>>
>
>
>>thank you,
>>
>>i get error message Record is out of range at
>>
>>goto lnRecno in crsResult
>>
>>>You're right, sorry. The problem is that we don't have another key field to match (as I have to use artificial row column).
>>>
>>>So, the solution would be
>>>
>>>local lnRecNo
>>>lnRecno = 1
>>>select NewTest
>>>scan for ID1 = 2
>>>   goto m.lnRecno in crsResult
>>>   replace ty2010 with crsResult.Total
>>>   lnRecno = lnRecno + 1
>>>endscan
>>>
>>>
>>>>i mean
>>>>crsResult have fields
>>>>id total
>>>>2 53.670
>>>>2 50.330
>>>>2 50.246
>>>>2 .638
>>>>2 110.594
>>>>2 2.100
>>>>**********************this is correct i need to replace this value to ty2010 at new test as crsResult total
>>>>but i see at newtest
>>>>id1 ty2010
>>>>2 53.670
>>>>2 53.670
>>>>2 53.670
>>>>2 53.670
>>>>2 53.670
>>>>2 53.670
>>>>
>>>>
>>>>
>>>>>>thank you ,
>>>>>>i try when i brow the table i see the first vlaue replacement with all id1=2
>>>>>>
>>>>>>SELECT ID1 ,Y2010, cast(0 as int) as Row FROM NEWTEST WHERE ID1=1 AND ID>0 into cursor crs1 readwrite
>>>>>>replace all Row with recno() in crs1
>>>>>>
>>>>>>SELECT ID1 ,Y2010, cast(0 as int) as Row FROM NEWTEST WHERE ID1=2 AND ID>0 into cursor crs2 readwrite
>>>>>>replace all Row with recno() in crs2
>>>>>>
>>>>>>select c2.ID1, c2.Y2010 + c1.Y2010 as Total from crs2 c2 ;
>>>>>>inner join crs1 c1 on c2.Row = c1.Row into cursor crsResult nofilter
>>>>>>
>>>>>>update NewTest set ty2010 = c1.Total ;
>>>>>>from NewTest inner join crsResult c1 on NewTest.ID1 = c1.ID1
>>>>>>
>>>>>>at crsResult correct
>>>>>>
>>>>>>brow
>>>>>>CLOSE all
>>>>>>USE NewTest
>>>>>>BROWSE                      && replace the first value for all mean where id1=2
>>>>>>
>>>>>
>>>>>Yes, that's how my code works. It only updates records where ID1 = 2.
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform