Hi,
I've been creating reports using Command. Rather than a subreport I like to grab values using a select within a select in my sql query. However, I have the scenario whereby there are multiple fields I would like to grab and I use a select on each one. I see it is a performance hit to the point I'm wondering if a single subreport would be better?
I'm wondering if I can combine all of the subselects into a single select in order to optimize the query. I'm using CR 2011. My sql query is as follows:
Select ft.field_tickets_id, ft.sequence AS "Ticket Sequence", ft.ticket_date, ft.comments, jobs.job_internal_id, customers.customer_name, customers.street_address, customers.extended_address, customers.locality, customers.postal_code, regions.region_code, v_field_tickets.employee_billing_total, v_field_tickets.resource_billing_total,
(SELECT(cftv.value) from custom_field_tickets_values AS cftv WHERE ft.field_tickets_id=cftv.field_tickets_id AND cftv.custom_fields_id=1048) AS temperature,
(SELECT(cftv.value) from custom_field_tickets_values AS cftv WHERE ft.field_tickets_id=cftv.field_tickets_id AND cftv.custom_fields_id=1054) AS wind,
(SELECT(cftv.value) from custom_field_tickets_values AS cftv WHERE ft.field_tickets_id=cftv.field_tickets_id AND cftv.custom_fields_id=1055) AS precipitation,
(SELECT(cftv.value) from custom_field_tickets_values AS cftv WHERE ft.field_tickets_id=cftv.field_tickets_id AND cftv.custom_fields_id=1056) AS conditions,
(SELECT(cftv.value) from custom_field_tickets_values AS cftv WHERE ft.field_tickets_id=cftv.field_tickets_id AND cftv.custom_fields_id=1057) AS fluid_lost,
(SELECT(cftv.value) from custom_field_tickets_values AS cftv WHERE ft.field_tickets_id=cftv.field_tickets_id AND cftv.custom_fields_id=1058) AS hauled_fluids,
(SELECT(cftv.value) from custom_field_tickets_values AS cftv WHERE ft.field_tickets_id=cftv.field_tickets_id AND cftv.custom_fields_id=1059) AS tanks_fluid_hauled,
(SELECT(cftv.value) from custom_field_tickets_values AS cftv WHERE ft.field_tickets_id=cftv.field_tickets_id AND cftv.custom_fields_id=1060) AS out_total_fluid,
(SELECT(cftv.value) from custom_field_tickets_values AS cftv WHERE ft.field_tickets_id=cftv.field_tickets_id AND cftv.custom_fields_id=1061) AS pumped_bbls,
(SELECT(cftv.value) from custom_field_tickets_values AS cftv WHERE ft.field_tickets_id=cftv.field_tickets_id AND cftv.custom_fields_id=1062) AS rods_pulled,
(SELECT(cftv.value) from custom_field_tickets_values AS cftv WHERE ft.field_tickets_id=cftv.field_tickets_id AND cftv.custom_fields_id=1063) AS rods_ran,
(SELECT(cftv.value) from custom_field_tickets_values AS cftv WHERE ft.field_tickets_id=cftv.field_tickets_id AND cftv.custom_fields_id=1064) AS ponies_ran,
(SELECT(cftv.value) from custom_field_tickets_values AS cftv WHERE ft.field_tickets_id=cftv.field_tickets_id AND cftv.custom_fields_id=1065) AS polish_rod_size,
(SELECT(cftv.value) from custom_field_tickets_values AS cftv WHERE ft.field_tickets_id=cftv.field_tickets_id AND cftv.custom_fields_id=1066) AS ponies_pulled,
(SELECT(cftv.value) from custom_field_tickets_values AS cftv WHERE ft.field_tickets_id=cftv.field_tickets_id AND cftv.custom_fields_id=1067) AS rod_size,
(SELECT(cftv.value) from custom_field_tickets_values AS cftv WHERE ft.field_tickets_id=cftv.field_tickets_id AND cftv.custom_fields_id=1068) AS casing,
(SELECT(cftv.value) from custom_field_tickets_values AS cftv WHERE ft.field_tickets_id=cftv.field_tickets_id AND cftv.custom_fields_id=1069) AS casing_size,
(SELECT(cftv.value) from custom_field_tickets_values AS cftv WHERE ft.field_tickets_id=cftv.field_tickets_id AND cftv.custom_fields_id=1070) AS tubing_size,
(SELECT(cftv.value) from custom_field_tickets_values AS cftv WHERE ft.field_tickets_id=cftv.field_tickets_id AND cftv.custom_fields_id=1071) AS tubing_ran,
(SELECT(cftv.value) from custom_field_tickets_values AS cftv WHERE ft.field_tickets_id=cftv.field_tickets_id AND cftv.custom_fields_id=1072) AS td_ft,
(SELECT(cftv.value) from custom_field_tickets_values AS cftv WHERE ft.field_tickets_id=cftv.field_tickets_id AND cftv.custom_fields_id=1073) AS tubing_pulled,
(SELECT(cjv.checkbox_value) from custom_jobs_values AS cjv WHERE ft.jobs_id=cjv.jobs_id AND cjv.custom_fields_id=1045) AS wyoming,
(SELECT(cjv.checkbox_value) from custom_jobs_values AS cjv WHERE ft.jobs_id=cjv.jobs_id AND cjv.custom_fields_id=1046) AS colorado,
(SELECT(cjv.checkbox_value) from custom_jobs_values AS cjv WHERE ft.jobs_id=cjv.jobs_id AND cjv.custom_fields_id=1047) AS pennsylvania,
(SELECT(cjv.value) from custom_jobs_values AS cjv WHERE ft.jobs_id=cjv.jobs_id AND cjv.custom_fields_id=1050) AS county,
(SELECT(cjv.value) from custom_jobs_values AS cjv WHERE ft.jobs_id=cjv.jobs_id AND cjv.custom_fields_id=1051) AS afenumber,
(SELECT(cjv.value) from custom_jobs_values AS cjv WHERE ft.jobs_id=cjv.jobs_id AND cjv.custom_fields_id=1052) AS lou,
(SELECT(cjv.value) from custom_jobs_values AS cjv WHERE ft.jobs_id=cjv.jobs_id AND cjv.custom_fields_id=1053) AS oa,
(SELECT(cjv.value) from custom_jobs_values AS cjv WHERE ft.jobs_id=cjv.jobs_id AND cjv.custom_fields_id=1075) AS costcenter,
(SELECT(cjv.value) from custom_jobs_values AS cjv WHERE ft.jobs_id=cjv.jobs_id AND cjv.custom_fields_id=1076) AS glcode,
(SELECT(cjv.value) from custom_jobs_values AS cjv WHERE ft.jobs_id=cjv.jobs_id AND cjv.custom_fields_id=1085) AS area
from field_tickets AS ft
INNER JOIN jobs ON ft.jobs_id=jobs.jobs_id
INNER JOIN customers ON jobs.customers_id=customers.customers_id
INNER JOIN regions ON customers.regions_id=regions.regions_id
INNER JOIN v_field_tickets ON ft.field_tickets_id=v_field_tickets.field_tickets_id where
IsNull(ft.deleted_at)
Thanks in advance!
Mark