Here is an example that should work based on other older solutions to this problem. This could all be put in a macro so the end user just pushes a button or runs the stored SQL there are shorter examples as well but this should work.
The source table is Members which holds thousands of records (and would be problematic with a Cut/Paste solution.
The text tables should only hold the limited set of records that are identified in the last select statement (i.e. only members that have paid for mailings based on the MailThru field on the Members table).
create text table “MailData” (“LastName” varchar(20), “FirstName” varchar(20), “Address” varchar(40), “City” varchar(20), “State” varchar(20), “Zip5” varchar(5), “Zip4” varchar(4))
set table “MailData” source “MailData.csv;encoding=UTF-8”
insert into “MailData” SELECT “Members”.“FirstName” “FirstName”, “Members”.“LastName” “LastName”, “Members”.“Address” “Address”, “Members”.“City” “City”, “Members”.“State” “State”, “Members”.“Zip5” “Zip5”, “Members”.“Zip4” “Zip4” FROM “Members” “Members” WHERE (“Members”.“MailThru” >= ‘2020/04’ ) ORDER BY “Zip5”, “Zip4”
NOTE: The above solution DOES work if you’re using the HSQLDB database and NOT the Firebird database. So, the lesson learned is if you want to do anything but basic stuff make sure you build your Base DB using the HSQLDB and not the Firebird DB.