Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
UPDATE instead of REPLACE
Message
From
28/12/2010 12:22:44
 
 
To
28/12/2010 12:05:50
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Environment versions
Visual FoxPro:
VFP 9 SP2
OS:
Windows XP SP2
Network:
Windows XP
Database:
Visual FoxPro
Application:
Desktop
Miscellaneous
Thread ID:
01493981
Message ID:
01494021
Views:
72
Thanks sir for providing following speedy codes
update cr_sum ;
	set dr_amount = jj.cr_amount - jj.cr_amount1 ;
	from crsalp ;
	join ( ;
	select sum(iif(cr.type = 'P', cr_amount, 000000.00)) as cr_amount, ;
	sum(iif(cr.type = 'D', cr_amount, 000000.00)) as cr_amount1, ;
	cr.vou_no ;
	from crsalp as cr ;
	group by cr.vou_no ;
	)  as jj on jj.vou_no = crsalp.vou_no
But........

It copy first result to all records in cr_sum

It must update cr_sum.vou_no with crsalp.vou_no

COMPARISON

The codes takes 0.55 seconds and TORE'S following codes takes 8 minutes
select crsalp
 goto top
Scan
   lnVou_no=crsalp.you_no
   select ;
      sum(iif(type="P",cr_amount,0))as cr_amount,;
      sum(iif(type="D",dr_amount,0))as ddr_amount1;
      where vou_no=lnvou_no;
      from crsalp;
      group by vou_no;
      into cursor xyz readwrite
   wait window transform(lnvou_no) at srows()/2,scols()/2 nowait
   update cr_sum set dr_amount=xyz.cr_amount-xyz.ddr_amount1 where vou_no=lnVou_no
Endscan
 
messagebox("Done",0+16+256,"Successfully")
I need more modifications in Charlie Schreiner's codes.

Thanks
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform