Support

Home Forums Event Espresso Premium Event Espresso 4 – Registrations Filtered CSV Report Showing Duplicate Records

Event Espresso 4 – Registrations Filtered CSV Report Showing Duplicate Records

Posted: March 2, 2021 at 1:07 pm

Viewing 6 reply threads


NewEEUser

March 2, 2021 at 1:07 pm

I created a previous support ticket on this

https://eventespresso.com/topic/event-espresso-4-registrations-filtered-csv-report-showing-duplicate-records/
When I create a filtered CSV report, the csv download contains duplicate records of the same registration sometimes as many as 20. For example, when I filter for February 2021 I have 29 registrations but my report shows 450 records with 429 duplicates.

I deactivated custom code hooking into the CSV output to add/remove columns and I still get a bunch of duplicate records

Please advise how I can resolve.


NewEEUser

March 2, 2021 at 1:08 pm

Also, this is happening in the admin with the filter report showing more results than there actually are.


NewEEUser

March 3, 2021 at 1:54 pm

Is there an issue with the EE filter query?


Tony

  • Support Staff

March 5, 2021 at 4:04 am

Hi there,

For example, when I filter for February 2021 I have 29 registrations but my report shows 450 records with 429 duplicates.

Hmm, yeah that’s odd. I can’t reproduce that.

Can you post the exact steps you are taking here? You’ve mentioned ‘filter query’ in your last reply, so I assume you are using the ‘Filtered CSV Report’ button?

If you can post the full steps to get to the report you are using I’ll see if I can reproduce it.

I deactivated custom code hooking into the CSV output to add/remove columns and I still get a bunch of duplicate records

100% sure you removed all custom code hooking into the CSV when testing this?

Is there an issue with the EE filter query?

If this was an issue with the query itself I’d expect a lot more reports of this but this is the first I’ve heard of it iirc.

When you click the export button, does the file download straight away, or do you see another page with a progress bar first?


NewEEUser

March 8, 2021 at 9:52 pm

Thanks for the reply, Tony. When I go to EE > Registrations, select filter for Feb 2021 (for example), then click Filtered CSV Report, there is a new page with a download progress bar and then the file downloads. What I get in the CSV file are all the registrations for that period but 15-20 duplicate rows of the same records. So a report that should only have 300 rows of registration records ends up with 5000-6000 rows with duplicates. Do you now what might be causing this?


NewEEUser

March 9, 2021 at 1:38 am

This is the query that is being executed when a user runs the export with filtered results. When I run the query in MySQL I get the same number of results with duplicates. Can you check if something is not right or provide me with your query so we can see whats happening? BTW the found registrations inside the dashboard when I try to filter them is also matching the total rows found ( including duplicates )

SELECT Registration.REGID AS ‘Registration.REGID’, Registration.EVTID AS ‘Registration.EVTID’, Registration.ATTID AS ‘Registration.ATTID’, Registration.TXNID AS ‘Registration.TXNID’, Registration.TKTID AS ‘Registration.TKTID’, Registration.STSID AS ‘Registration.STSID’, Registration.REGdate AS ‘Registration.REGdate’, Registration.REGfinalprice AS ‘Registration.REGfinalprice’, Registration.REGpaid AS ‘Registration.REGpaid’, Registration.REGsession AS ‘Registration.REGsession’, Registration.REGcode AS ‘Registration.REGcode’, Registration.REGurllink AS ‘Registration.REGurllink’, Registration.REGcount AS ‘Registration.REGcount’, Registration.REGgroupsize AS ‘Registration.REGgroupsize’, Registration.REGattisgoing AS ‘Registration.REGattisgoing’, Registration.REGdeleted AS ‘Registration.REGdeleted’, EventCPT.ID AS ‘EventCPT.ID’, EventCPT.posttitle AS ‘EventCPT.posttitle’, EventCPT.postcontent AS ‘EventCPT.postcontent’, EventCPT.postname AS ‘EventCPT.postname’, EventCPT.postdate AS ‘EventCPT.postdate’, EventCPT.postexcerpt AS ‘EventCPT.postexcerpt’, EventCPT.postmodified AS ‘EventCPT.postmodified’, EventCPT.postauthor AS ‘EventCPT.postauthor’, EventCPT.postparent AS ‘EventCPT.postparent’, EventCPT.menuorder AS ‘EventCPT.menuorder’, EventCPT.poststatus AS ‘EventCPT.poststatus’, EventCPT.postpassword AS ‘EventCPT.postpassword’, EventCPT.commentstatus AS ‘EventCPT.commentstatus’, EventCPT.pingstatus AS ‘EventCPT.pingstatus’, EventMeta.EVTdisplaydesc AS ‘EventMeta.EVTdisplaydesc’, EventMeta.EVTdisplayticketselector AS ‘EventMeta.EVTdisplayticketselector’, EventMeta.EVTvisibleon AS ‘EventMeta.EVTvisibleon’, EventMeta.EVTadditionallimit AS ‘EventMeta.EVTadditionallimit’, EventMeta.EVTdefaultregistrationstatus AS ‘EventMeta.EVTdefaultregistrationstatus’, EventMeta.EVTmemberonly AS ‘EventMeta.EVTmemberonly’, EventMeta.EVTphone AS ‘EventMeta.EVTphone’, EventMeta.EVTallowoverflow AS ‘EventMeta.EVTallowoverflow’, EventMeta.EVTtimezonestring AS ‘EventMeta.EVTtimezonestring’, EventMeta.EVTexternalURL AS ‘EventMeta.EVTexternalURL’, EventMeta.EVTdonations AS ‘EventMeta.EVTdonations’, EventCPT.ID AS ‘EventCPT.ID’, EventMeta.EVTMID AS ‘EventMeta.EVTMID’, EventTermRelationship.object_id AS ‘EventTermRelationship.objectid’, EventTermRelationship.termtaxonomy_id AS ‘EventTermRelationship.termtaxonomyid’, EventTermRelationship.term_order AS ‘EventTermRelationship.termorder’, EventTermTaxonomy.termtaxonomy_id AS ‘EventTermTaxonomy.termtaxonomyid’, EventTermTaxonomy.term_id AS ‘EventTermTaxonomy.termid’, EventTerm_Taxonomy.taxonomy AS ‘EventTermTaxonomy.taxonomy’, EventTermTaxonomy.description AS ‘EventTermTaxonomy.description’, EventTermTaxonomy.parent AS ‘EventTermTaxonomy.parent’, EventTermTaxonomy.count AS ‘EventTermTaxonomy.count’, Answer.ANSID AS ‘Answer.ANSID’, Answer.REGID AS ‘Answer.REGID’, Answer.QSTID AS ‘Answer.QSTID’, Answer.ANSvalue AS ‘Answer.ANSvalue’ FROM wpespregistration AS Registration LEFT JOIN wpposts AS EventCPT ON EventCPT.ID=Registration.EVTID LEFT JOIN wpespeventmeta AS EventMeta ON EventCPT.ID = EventMeta.EVTID LEFT JOIN wptermrelationships AS EventTerm_Relationship ON EventTermRelationship.objectid=EventCPT.ID LEFT JOIN wptermtaxonomy AS EventTermTaxonomy ON EventTermTaxonomy.termtaxonomyid=EventTermRelationship.termtaxonomyid LEFT JOIN wpespanswer AS Answer ON Answer.REGID=Registration.REGID WHERE Registration.REG_deleted = 0 AND EventTermTaxonomy.termid = 241 AND Registration.STSID != ‘RIC’ AND (Answer.ANSvalue LIKE ‘{d7888fb4da55426dce4c4af0b3203008e81df2f8b90c2274bcd0fb17d1022321}{d7888fb4da55426dce4c4af0b3203008e81df2f8b90c2274bcd0fb17d1022321}’) ORDER BY Registration.REGdate DESC,Registration.REG_ID DESC LIMIT 0,100`


Tony

  • Support Staff

March 9, 2021 at 5:23 am

That query doesn’t match the filter you mentioned above:

When I go to EE > Registrations, select filter for Feb 2021 (for example), then click Filtered CSV Report, there is a new page with a download progress bar and then the file downloads.

Your SQL does not filter based on date and looks like its based on Event Category and a registration form Answer? Can you post the steps you are taking for the above please?

EE doesn’t run the registration report based on a specific question value like the above, it pulls all registrations for an event (or all registrations) the loops over them and pulls answers from there.

Here is an example of a month filter query for me:

SELECT Registration.REG_ID AS 'Registration.REG_ID', Registration.EVT_ID AS 'Registration.EVT_ID', Registration.ATT_ID AS 'Registration.ATT_ID', Registration.TXN_ID AS 'Registration.TXN_ID', Registration.TKT_ID AS 'Registration.TKT_ID', Registration.STS_ID AS 'Registration.STS_ID', Registration.REG_date AS 'Registration.REG_date', Registration.REG_final_price AS 'Registration.REG_final_price', Registration.REG_paid AS 'Registration.REG_paid', Registration.REG_session AS 'Registration.REG_session', Registration.REG_code AS 'Registration.REG_code', Registration.REG_url_link AS 'Registration.REG_url_link', Registration.REG_count AS 'Registration.REG_count', Registration.REG_group_size AS 'Registration.REG_group_size', Registration.REG_att_is_going AS 'Registration.REG_att_is_going', Registration.REG_deleted AS 'Registration.REG_deleted', Event_CPT.ID AS 'Event_CPT.ID', Event_CPT.post_title AS 'Event_CPT.post_title', Event_CPT.post_content AS 'Event_CPT.post_content', Event_CPT.post_name AS 'Event_CPT.post_name', Event_CPT.post_date AS 'Event_CPT.post_date', Event_CPT.post_excerpt AS 'Event_CPT.post_excerpt', Event_CPT.post_modified AS 'Event_CPT.post_modified', Event_CPT.post_author AS 'Event_CPT.post_author', Event_CPT.post_parent AS 'Event_CPT.post_parent', Event_CPT.menu_order AS 'Event_CPT.menu_order', Event_CPT.post_status AS 'Event_CPT.post_status', Event_CPT.post_password AS 'Event_CPT.post_password', Event_CPT.comment_status AS 'Event_CPT.comment_status', Event_CPT.ping_status AS 'Event_CPT.ping_status', Event_Meta.EVT_display_desc AS 'Event_Meta.EVT_display_desc', Event_Meta.EVT_display_ticket_selector AS 'Event_Meta.EVT_display_ticket_selector', Event_Meta.EVT_visible_on AS 'Event_Meta.EVT_visible_on', Event_Meta.EVT_additional_limit AS 'Event_Meta.EVT_additional_limit', Event_Meta.EVT_default_registration_status AS 'Event_Meta.EVT_default_registration_status', Event_Meta.EVT_member_only AS 'Event_Meta.EVT_member_only', Event_Meta.EVT_phone AS 'Event_Meta.EVT_phone', Event_Meta.EVT_allow_overflow AS 'Event_Meta.EVT_allow_overflow', Event_Meta.EVT_timezone_string AS 'Event_Meta.EVT_timezone_string', Event_Meta.EVT_external_URL AS 'Event_Meta.EVT_external_URL', Event_Meta.EVT_donations AS 'Event_Meta.EVT_donations', Event_CPT.ID AS 'Event_CPT.ID', Event_Meta.EVTM_ID AS 'Event_Meta.EVTM_ID', TransactionTable.TXN_ID AS 'TransactionTable.TXN_ID', TransactionTable.TXN_timestamp AS 'TransactionTable.TXN_timestamp', TransactionTable.TXN_total AS 'TransactionTable.TXN_total', TransactionTable.TXN_paid AS 'TransactionTable.TXN_paid', TransactionTable.STS_ID AS 'TransactionTable.STS_ID', TransactionTable.TXN_session_data AS 'TransactionTable.TXN_session_data', TransactionTable.TXN_hash_salt AS 'TransactionTable.TXN_hash_salt', TransactionTable.PMD_ID AS 'TransactionTable.PMD_ID', TransactionTable.TXN_reg_steps AS 'TransactionTable.TXN_reg_steps', Ticket.TKT_ID AS 'Ticket.TKT_ID', Ticket.TTM_ID AS 'Ticket.TTM_ID', Ticket.TKT_name AS 'Ticket.TKT_name', Ticket.TKT_description AS 'Ticket.TKT_description', Ticket.TKT_start_date AS 'Ticket.TKT_start_date', Ticket.TKT_end_date AS 'Ticket.TKT_end_date', Ticket.TKT_min AS 'Ticket.TKT_min', Ticket.TKT_max AS 'Ticket.TKT_max', Ticket.TKT_price AS 'Ticket.TKT_price', Ticket.TKT_sold AS 'Ticket.TKT_sold', Ticket.TKT_qty AS 'Ticket.TKT_qty', Ticket.TKT_reserved AS 'Ticket.TKT_reserved', Ticket.TKT_uses AS 'Ticket.TKT_uses', Ticket.TKT_required AS 'Ticket.TKT_required', Ticket.TKT_taxable AS 'Ticket.TKT_taxable', Ticket.TKT_is_default AS 'Ticket.TKT_is_default', Ticket.TKT_order AS 'Ticket.TKT_order', Ticket.TKT_row AS 'Ticket.TKT_row', Ticket.TKT_deleted AS 'Ticket.TKT_deleted', Ticket.TKT_wp_user AS 'Ticket.TKT_wp_user', Ticket.TKT_parent AS 'Ticket.TKT_parent', Attendee_CPT.ID AS 'Attendee_CPT.ID', Attendee_CPT.post_title AS 'Attendee_CPT.post_title', Attendee_CPT.post_content AS 'Attendee_CPT.post_content', Attendee_CPT.post_name AS 'Attendee_CPT.post_name', Attendee_CPT.post_date AS 'Attendee_CPT.post_date', Attendee_CPT.post_excerpt AS 'Attendee_CPT.post_excerpt', Attendee_CPT.post_modified AS 'Attendee_CPT.post_modified', Attendee_CPT.post_author AS 'Attendee_CPT.post_author', Attendee_CPT.post_status AS 'Attendee_CPT.post_status', Attendee_CPT.post_password AS 'Attendee_CPT.post_password', Attendee_CPT.comment_status AS 'Attendee_CPT.comment_status', Attendee_CPT.ping_status AS 'Attendee_CPT.ping_status', Attendee_Meta.ATT_fname AS 'Attendee_Meta.ATT_fname', Attendee_Meta.ATT_lname AS 'Attendee_Meta.ATT_lname', Attendee_Meta.ATT_address AS 'Attendee_Meta.ATT_address', Attendee_Meta.ATT_address2 AS 'Attendee_Meta.ATT_address2', Attendee_Meta.ATT_city AS 'Attendee_Meta.ATT_city', Attendee_Meta.STA_ID AS 'Attendee_Meta.STA_ID', Attendee_Meta.CNT_ISO AS 'Attendee_Meta.CNT_ISO', Attendee_Meta.ATT_zip AS 'Attendee_Meta.ATT_zip', Attendee_Meta.ATT_email AS 'Attendee_Meta.ATT_email', Attendee_Meta.ATT_phone AS 'Attendee_Meta.ATT_phone', Attendee_CPT.ID AS 'Attendee_CPT.ID', Attendee_Meta.ATTM_ID AS 'Attendee_Meta.ATTM_ID' FROM wp_esp_registration AS Registration LEFT JOIN wp_posts AS Event_CPT ON Event_CPT.ID=Registration.EVT_ID LEFT JOIN wp_esp_event_meta AS Event_Meta ON Event_CPT.ID = Event_Meta.EVT_ID LEFT JOIN wp_esp_transaction AS TransactionTable ON TransactionTable.TXN_ID=Registration.TXN_ID LEFT JOIN wp_esp_ticket AS Ticket ON Ticket.TKT_ID=Registration.TKT_ID LEFT JOIN wp_posts AS Attendee_CPT ON Attendee_CPT.ID=Registration.ATT_ID LEFT JOIN wp_esp_attendee_meta AS Attendee_Meta ON Attendee_CPT.ID = Attendee_Meta.ATT_ID WHERE Registration.REG_deleted = 0 AND Registration.STS_ID != 'RIC' AND Registration.REG_date BETWEEN '2021-02-01 00:00:00' AND '2021-02-28 23:59:59' ORDER BY Registration.REG_date DESC,Registration.REG_ID DESC LIMIT 0,1

Viewing 6 reply threads

The support post ‘Event Espresso 4 – Registrations Filtered CSV Report Showing Duplicate Records’ is closed to new replies.

Have a question about this support post? Create a new support post in our support forums and include a link to this existing support post so we can help you.

Event Espresso