cSelect = "obligor,obligation,unit,name,addr1" cGroupby = "obligor, obligation" = ALINES(laGroupBy, cGroupby, 1, [,]) cNewSelect = "" FOR lnFor = 1 TO ALINES(laSelect, cSelect, 1, [,]) lcField = laSelect[lnFor] IF ASCAN(laGroupBy, lcField, -1,-1,-1,1+2+4) > 0 cNewSelect = cNewSelect + [, ] + lcField ELSE cNewSelect = cNewSelect + [, MIN(] + lcField + [) AS ] + lcField ENDIF ENDFOR cSelect = SUBSTR(cNewSelect,3) ? cSelect *-------------------------------------- *** or cNewSelect = "" FOR lnFor = 1 TO GETWORDCOUNT(cSelect, [,]) lcField = ALLTRIM(GETWORDNUM(cSelect, lnFor, [,])) IF ASCAN(laGroupBy, lcField, -1,-1,-1,1+2+4) > 0 cNewSelect = cNewSelect + [, ] + lcField ELSE cNewSelect = cNewSelect + [, MIN(] + lcField + [) AS ] + lcField ENDIF ENDFOR cSelect = SUBSTR(cNewSelect,3) ? cSelect>I am trying to make some of our code compliant with VFP 9.0. The primary update that I am applying is to add a MIN() to every field in the SELECT that is not in the GROUP BY. Our SQL statements are built so I have the text strings, but I am not very proficient at text manipulation.