**************** * Method 1 **************** Clear all Use OSdpl order tag main alias crs_A && main key pl_account+pl_letter Use OSdpl order tag main in 0 again alias crs_B && main key pl_account+pl_letter Use OSdpl order tag main in 0 again alias crs_C && main key pl_account+pl_letter Select distinct pl_account ; from OSdpl ; where .t. ; into cursor crsParent Set relation ; to pl_account+"A" into crs_A, ; pl_account+"B" into crs_B, ; pl_account+"C" into crs_C Browse fields ; pl_account :h = "A_account", ; A_letter = crs_A.pl_letter, ; A_Namelas = crs_A.pl_namelas, ; B_Letter = crs_B.pl_letter, ; B_Namelas = crs_B.pl_namelas, ; C_Letter = crs_C.pl_letter, ; C_Namelas = crs_C.pl_namelas ; nomodify **************** * Method 2 **************** Use OSdpl order tag main && main key pl_account+pl_letter Create cursor Pat_list ; (A_Account C(5), A_letter C(1), A_Namelas C(20), ; B_Letter C(1), B_Namelas C(20), ; C_Letter C(1), C_Namelas C(20)) Select distinct pl_account from OSdpl into array aAccounts For ix = 1 to alen(aAccounts,1) m.A_Account = aAccounts[ix,1] =seek(aAccounts[ix,1]+"A","osdpl") m.A_letter = OSdpl.pl_letter m.A_Namelas = OSdpl.pl_namelas =seek(aAccounts[ix,1]+"B","osdpl") m.B_Letter = OSdpl.pl_letter m.B_Namelas = OSdpl.pl_namelas =seek(aAccounts[ix,1]+"C","osdpl") m.C_Letter = OSdpl.pl_letter m.C_Namelas = OSdpl.pl_namelas Insert into Pat_list from memvar Endfor Select Pat_list Go top Browse **************** * Method 3 **************** =SubSel("A") =SubSel("B") =SubSel("C") Select A.A_Account, A_letter, A_Namelas, ; B_Letter, B_Namelas, ; C_Letter, C_Namelas ; from crs_A A, crs_B B, crs_C C ; where ; A.A_Account = B.B_Account ; and B.B_Account = C.C_Account ; order by 1 ; into cursor Pat_list Browse Function SubSel Parameters tcLetter Select pl_account AS (tcLetter+"_account"), ; pl_letter AS (tcLetter+"_letter"), ; pl_namelas as (tcLetter+"_Namelas") ; from OSdpl ; where pl_letter = tcLetter ; union ; SELECT pl_account AS (tcLetter+"_account"), ; " " AS (tcLetter+"_letter"), ; " " as (tcLetter+"_Namelas") ; where pl_account not in ; (select distinct pl_account from OSdpl where pl_letter = tcLetter) ; and .t. ; FROM OSdpl ; order by 1 ; INTO CURSOR ("crs_"+tcLetter)Cetin