Select * From customer Into Cursor c1 Readwrite Select c1 Browse Title "Modify some records-Compnay,Contact,Cust_id fields only" Select Cust_ID, Company,Contact From customer Into Cursor c2 Readwrite Select c2 Browse Title "Modify some records" Afields(aT1,'c1') Afields(aT2,'c2') lcCommonFields = '' For ix=1 To Alen(aT1,1) If Ascan(aT2, aT1[m.ix,1], 1,-1,1,1+2+4+8) > 0 lcCommonFields = m.lcCommonFields + ; Iif(Empty(m.lcCommonFields),'',',')+; aT1[m.ix,1] Endif Endfor Select 1 As _Src,&lcCommonFields From c1 ; union ; Select 2 As _Src,&lcCommonFields From c2 ; into Cursor CrsU lcGrpBy = '' For ix=2 To Fcount() lcGrpBy = m.lcGrpBy + Iif(Empty(m.lcGrpBy),'',',')+Transform(m.ix) Endfor Select * From CrsU ; having Sum(_Src) # 3 ; group By &lcGrpByThis would work under VFP7 or with "set enginebehavior 70" in 8 and up.
Select 1,&lcCommonFields From CrsU ; having Sum(_Src) # 3 ; group By 1,&lcGrpByCetin
>>select 1 as _source,&lcCommonFields from t1 ; >>union ; >>select 2 as _source,&lcCommonFields from t2 ; >>into cursor temp nofilter >> >>lcGrpBy = '' >>For ix=2 To Fcount() >> lcGrpBy = m.lcGrpBy + Iif(Empty(m.lcGrpBy),'',',')+Transform(m.ix) >>Endfor >> >>select * from temp ; >> having sum(_source) # 3 group by &lcGroupBy >>Update: VFP and up compatible version:
lcGrpBy = '' For ix=2 To Fcount() lcGrpBy = m.lcGrpBy + Iif(Empty(m.lcGrpBy),'',',')+Transform(m.ix-1) Endfor Select &lcCommonFields From CrsU ; having COUNT(*) = 1 ; group By &lcGrpByCetin