General information
Category:
Databases,Tables, Views, Indexing and SQL syntax
>I have a table with three fields, including one logical. I want to change the logical to .T. for every record that contains a unique entry. I've tried REPLACE MyTABLE.FIELD3 WITH .T. FOR (SELECT DISTINCT FIELD2 FROM MyTABLE) but I get a "Function name is missing )." What am I doing wrong?
The FOR clause must be a boolean value, the SELECT returns a record set. I don't know if there is a way to make that work. BTW, distinct doesn't return unique records, it just makes sure the output only has one of each in a group
try this:
Sele field2 as pk, cnt(field2) as cntpk from mytable into table c:\grpcnts
index on pk tag pk
sele mytable
set relation to field2 into grpcnts
Update mytable set field3=.T. where grpcnts.cntpk = 1
I tried this on a small table, and it works. If you have really large tables, it might be slower. I'd guess there's a better way, but A way is better than No way.
Previous
Reply
View the map of this thread
View the map of this thread starting from this message only
View all messages of this thread
View all messages of this thread starting from this message only