Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 8122

Is there a way to combine multiple selects into one select statement?

$
0
0

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


Viewing all articles
Browse latest Browse all 8122

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>