{"id":3785,"date":"2026-04-23T17:02:21","date_gmt":"2026-04-23T17:02:21","guid":{"rendered":"https:\/\/jpbydesign.com\/?p=3785"},"modified":"2026-04-24T21:16:22","modified_gmt":"2026-04-24T21:16:22","slug":"sql-example-workforce-grid","status":"publish","type":"post","link":"https:\/\/jpbydesign.com\/index.php\/2026\/04\/23\/sql-example-workforce-grid\/","title":{"rendered":"SQL Example Workforce Grid"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">I worked on this for a government related agency &#8211; for their construction department.  The need was to pivot source data- a very wide, hard to decipher column data &#8211; into hours data by craft, trade, gender, race and by a derived row key (a tall, narrow data table).  There are 2 sections to the source: arch (Architects) and cont (Contractors) and each has their subset of columns.  I combined\/union-ed the 2 datasets.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"1024\" height=\"526\" data-attachment-id=\"3791\" data-permalink=\"https:\/\/jpbydesign.com\/sql-seeklogo-webp\/\" data-orig-file=\"https:\/\/i0.wp.com\/jpbydesign.com\/wp-content\/uploads\/2026\/04\/sql-seeklogo.webp?fit=2000%2C1027&amp;ssl=1\" data-orig-size=\"2000,1027\" data-comments-opened=\"1\" data-image-title=\"sql-seeklogo.webp\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/jpbydesign.com\/wp-content\/uploads\/2026\/04\/sql-seeklogo.webp?fit=1024%2C526&amp;ssl=1\" loading=\"lazy\" src=\"https:\/\/i0.wp.com\/jpbydesign.com\/wp-content\/uploads\/2026\/04\/sql-seeklogo.webp?resize=1024%2C526&#038;ssl=1\" alt=\"\" class=\"wp-image-3791\" style=\"aspect-ratio:1.9467727422733085;width:236px;height:auto\" srcset=\"https:\/\/i0.wp.com\/jpbydesign.com\/wp-content\/uploads\/2026\/04\/sql-seeklogo.webp?resize=1024%2C526&amp;ssl=1 1024w, https:\/\/i0.wp.com\/jpbydesign.com\/wp-content\/uploads\/2026\/04\/sql-seeklogo.webp?resize=300%2C154&amp;ssl=1 300w, https:\/\/i0.wp.com\/jpbydesign.com\/wp-content\/uploads\/2026\/04\/sql-seeklogo.webp?resize=768%2C394&amp;ssl=1 768w, https:\/\/i0.wp.com\/jpbydesign.com\/wp-content\/uploads\/2026\/04\/sql-seeklogo.webp?resize=1536%2C789&amp;ssl=1 1536w, https:\/\/i0.wp.com\/jpbydesign.com\/wp-content\/uploads\/2026\/04\/sql-seeklogo.webp?w=2000&amp;ssl=1 2000w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">SQL code<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">\/*\n\tWorkforce Grid\n\tCreated by John Horton of Logic Intelligence\n\tUpdated 12\/9\/2025\n*\/<\/mark>\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">WITH<\/mark> stage_arch_base\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">AS<\/mark> (\n\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">\/*extract architect values from table*\/<\/mark>\n\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">SELECT <\/mark>portal_id\n\t\t,processinstance_id\n\t\t,rownumber\n\t\t,dynamicgrid_name\n\t\t,Portal_id || '|' || processinstance_id || '|' || rownumber <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">AS<\/mark> Rowkey\n\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">-- person \/ role fields<\/mark>\n\t\t,<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">CASE \n\t\t\tWHEN <\/mark>customfield_name <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">IN<\/mark> ('Company Name')\n\t\t\t\t<mark style=\"background-color:#ffffff\" class=\"has-inline-color has-vivid-cyan-blue-color\">THEN <\/mark>customfieldvalue\n\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">END AS<\/mark> subcontractor_name\n\t\t,<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">CASE \n\t\t\tWHEN<\/mark> customfield_name <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">IN<\/mark> ('Position Title')\n\t\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">THEN<\/mark> customfieldvalue\n\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">WHEN<\/mark> customfield_name <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">IN<\/mark> ('Trade or Specialization')\n\t\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">AND NOT<\/mark> customfieldvalue ~ '^&#91;0-9]{1}'\n\t\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">THEN<\/mark> customfieldvalue\n\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">END AS<\/mark> Craft\n\t\t,<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">CASE \n\t\t\tWHEN<\/mark> customfield_name = 'IsAPP'\n\t\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">THEN<\/mark> customfieldvalue\n\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">END AS<\/mark> trade_stage\n\t\t,<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">CASE \n\t\t\tWHEN<\/mark> <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">charindex<\/mark>('Female', customfield_name) > 0\n\t\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">THEN <\/mark>'Female'\n\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">WHEN charindex<\/mark>('Male', customfield_name) > 0\n\t\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">THEN<\/mark> 'Male'\n\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">WHEN charindex<\/mark>('Non-Binary', customfield_name) > 0\n\t\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">THEN<\/mark> 'Non-Binary'\n\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">ELSE NULL<\/mark>\n\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">END AS<\/mark> Gender\n\t\t,<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">CASE \n\t\t\tWHEN charindex<\/mark>('Caucasian', customfield_name) > 0\n\t\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">THEN<\/mark> 'Caucasian'\n\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">WHEN charindex<\/mark>('African-American\/Black', customfield_name) > 0\n\t\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">THEN<\/mark> 'African American'\n\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">WHEN charindex<\/mark>('Hispanic', customfield_name) > 0\n\t\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">THEN<\/mark> 'Hispanic'\n\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">WHEN charindex<\/mark>('Other', customfield_name) > 0\n\t\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">THEN<\/mark> 'Other'\n\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">WHEN charindex<\/mark>('Asian\/Pacific Islander', customfield_name) > 0\n\t\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">THEN<\/mark> 'Asian\/Pacific Islander'\n\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">WHEN charindex<\/mark>('Native American', customfield_name) > 0\n\t\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">THEN<\/mark> 'Native American'\n\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">ELSE NULL\n\t\t\tEND AS<\/mark> Race\n\t\t,customfield_name\n\t\t,customfieldvalue\n\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">FROM <\/mark>\"SomeDataConnection\".\"processinstancedynamicgrid_fact\"\n\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">WHERE<\/mark> dynamicgrid_name <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">IN<\/mark> ('Architect Utilization')\n),\nsubstage_arch_Join <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">AS<\/mark> (\n\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">\/*sub stage to get fields that need to be applied at rowkey level*\/<\/mark>\n\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">SELECT MAX<\/mark>(subcontractor_name) <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">AS<\/mark> sub_name\n\t\t,<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">MAX<\/mark>(craft) <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">AS <\/mark>myCraft\n\t\t,Rowkey\n\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">FROM<\/mark> stage_arch_base\n\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">WHERE<\/mark> subcontractor_name <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">IS NOT NULL<\/mark>\n\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">OR<\/mark> craft <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">IS NOT NULL<\/mark>\n\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">GROUP BY<\/mark> Rowkey\n),\nstage_arch_join <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">AS<\/mark> (\n\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">\/*Append fields that are applied across rowkey level*\/<\/mark>\n\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">SELECT <\/mark>st.*\n\t\t,gs.sub_name\n\t\t,gs.myCraft\n\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">FROM<\/mark> stage_arch_base st\n\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">LEFT OUTER JOIN<\/mark> substage_arch_Join gs <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">ON<\/mark> st.Rowkey = gs.Rowkey\n),\nstage_arch_filter <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">AS<\/mark> (\n\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">\/*filter records that are not hour values*\/<\/mark>\n\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">SELECT<\/mark> portal_id\n\t\t,processinstance_id\n\t\t,rownumber\n\t\t,dynamicgrid_name\n\t\t,Rowkey\n\t\t,sub_name <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">AS<\/mark> subcontractor_name\n\t\t,myCraft <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">AS<\/mark> Craft\n\t\t,trade_stage\n\t\t,gender\n\t\t,race\n\t\t,<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">try_cast<\/mark>(customfieldvalue <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">AS<\/mark> DECIMAL(18, 2)) <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">AS<\/mark> hours\n\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">FROM<\/mark> stage_arch_join\n\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">WHERE<\/mark> customfield_name <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">NOT IN<\/mark> (\n\t\t\t'Position Title'\n\t\t\t,'Company Name'\n\t\t\t,'Trade or Specialization'\n\t\t\t)\n\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">AND try_cast<\/mark>(customfieldvalue <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">AS<\/mark> DECIMAL(18, 2)) > 0\n),\nstage_cont_base <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">AS<\/mark> (\n\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">\/*extract contributor values from table*\/<\/mark>\n\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">SELECT<\/mark> portal_id\n\t\t,processinstance_id\n\t\t,rownumber\n\t\t,dynamicgrid_name\n\t\t,Portal_id || '|' || processinstance_id || '|' || rownumber <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">AS<\/mark> Rowkey\n\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">-- person \/ role fields<\/mark>\n\t\t,<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">CASE \n\t\t\tWHEN<\/mark> customfield_name IN ('Name')\n\t\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">THEN<\/mark> customfieldvalue\n\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">END AS<\/mark> subcontractor_name\n\t\t,<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">CASE \n\t\t\tWHEN <\/mark>customfield_name IN ('Craft')\n\t\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">THEN<\/mark> customfieldvalue\n\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">END AS<\/mark> Craft\n\t\t,<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">CASE \n\t\t\tWHEN <\/mark>customfield_name = 'IsAPP'\n\t\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">THEN<\/mark> customfieldvalue\n\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">END AS<\/mark> trade_stage\n\t\t,<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">CASE \n\t\t\tWHEN <\/mark>customfield_name = 'Gender'\n\t\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">THEN<\/mark> customfieldvalue\n\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">END AS <\/mark>Gender\n\t\t,<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">CASE \n\t\t\tWHEN <\/mark>customfield_name = 'cau_total_hours'\n\t\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">THEN<\/mark> 'Caucasian'\n\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">WHEN<\/mark> customfield_name = 'cau_total_hours2'\n\t\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">THEN<\/mark> 'African-American\/Black'\n\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">WHEN <\/mark>customfield_name = 'cau_total_hours4'\n\t\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">THEN <\/mark>'Hispanic'\n\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">WHEN<\/mark> customfield_name = 'cau_total_hours6'\n\t\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">THEN<\/mark> 'Asian'\n\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">WHEN<\/mark> customfield_name = 'cau_total_hours8'\n\t\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">THEN<\/mark> 'Other'\n\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">WHEN<\/mark> customfield_name = 'cau_total_hours9'\n\t\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">THEN<\/mark> 'Native American'\n\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">WHEN<\/mark> customfield_name = 'cau_total_hours10'\n\t\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">THEN<\/mark> 'Multiple'\n\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">WHEN<\/mark> customfield_name = 'cau_total_hours11'\n\t\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">THEN<\/mark> 'Not Specified'\n\t\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">ELSE NULL\n\t\t\tEND AS<\/mark> race\n\t\t,customfield_name\n\t\t,customfieldvalue\n\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">FROM <\/mark>\"SomeDataConnection\".\"processinstancedynamicgrid_fact\"\n\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">WHERE<\/mark> dynamicgrid_name <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">IN<\/mark> ('Contractor Workforce Utilization')\n),\nsubstage_cont_Join <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">AS<\/mark> (\n\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">\/*sub stage to get fields that need to be applied at rowkey level*\/<\/mark>\n\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">SELECT MAX<\/mark>(subcontractor_name) <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">AS<\/mark> sub_name\n\t\t,<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">MAX<\/mark>(craft) <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">AS<\/mark> sub_craft\n\t\t,<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">MAX<\/mark>(trade_stage) <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">AS<\/mark> sub_trade\n\t\t,<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">MAX<\/mark>(gender) <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">AS <\/mark> sub_gender\n\t\t,Rowkey\n\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">FROM<\/mark> stage_cont_base\n\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">WHERE<\/mark> subcontractor_name <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">IS NOT NULL<\/mark>\n\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">OR<\/mark> craft <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">IS NOT NULL<\/mark>\n\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">OR<\/mark> trade_stage <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">IS NOT NULL<\/mark>\n\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">OR<\/mark> gender <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">IS NOT NULL<\/mark>\n\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">GROUP BY<\/mark> Rowkey\n),\nstage_cont_join <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">AS<\/mark> (\n\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">\/*Append fields that are applied across rowkey level*\/<\/mark>\n\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">SELECT<\/mark> st.*\n\t\t,gs.sub_name\n\t\t,gs.sub_craft\n\t\t,gs.sub_trade\n\t\t,gs.sub_gender\n\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">FROM<\/mark> stage_cont_base st\n\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">LEFT OUTER JOIN<\/mark> substage_cont_Join gs <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">ON<\/mark> st.Rowkey = gs.Rowkey\n),\nstage_cont_filter <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">AS<\/mark> (\n\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">\/*filter records that are not hour values*\/<\/mark>\n\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">SELECT <\/mark>portal_id\n\t\t,processinstance_id\n\t\t,rownumber\n\t\t,dynamicgrid_name\n\t\t,Rowkey\n\t\t,sub_name AS subcontractor_name\n\t\t,sub_craft AS Craft\n\t\t,sub_trade AS trade_stage\n\t\t,sub_gender AS gender\n\t\t,race\n\t\t,<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">try_cast<\/mark>(customfieldvalue AS DECIMAL(18, 2)) <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">AS<\/mark> hours\n\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">FROM<\/mark> stage_cont_join\n\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">WHERE<\/mark> customfield_name <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">NOT IN<\/mark> (\n\t\t\t'Name'\n\t\t\t,'Craft'\n\t\t\t,'IsAPP'\n\t\t\t,'Gender'\n\t\t\t)\n\t\t<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">AND try_cast<\/mark>(customfieldvalue AS DECIMAL(18, 2)) > 0\n)\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">\/*Append architect data and contributor together*\/<\/mark>\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">SELECT<\/mark> *\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">FROM <\/mark>stage_arch_filter\n\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">UNION ALL<\/mark>\n\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">SELECT <\/mark>*\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">FROM <\/mark>stage_cont_filter\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>I worked on this for a government related agency &#8211; for their construction department. The need was to pivot source data- a very wide, hard to decipher column data &#8211; into hours data by craft, trade, gender, race and by a derived row key (a tall, narrow data table). There are 2 sections to the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":3792,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"nf_dc_page":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[4,89],"tags":[47,101],"class_list":["post-3785","post","type-post","status-publish","format-standard","has-post-thumbnail","category-database","category-professional-portfolio","tag-sql","tag-sql-code","czr-hentry"],"jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p7Ze6V-Z3","jetpack-related-posts":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/jpbydesign.com\/wp-content\/uploads\/2026\/04\/sql-seeklogo.png?fit=2000%2C1027&ssl=1","_links":{"self":[{"href":"https:\/\/jpbydesign.com\/index.php\/wp-json\/wp\/v2\/posts\/3785","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jpbydesign.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jpbydesign.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jpbydesign.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jpbydesign.com\/index.php\/wp-json\/wp\/v2\/comments?post=3785"}],"version-history":[{"count":5,"href":"https:\/\/jpbydesign.com\/index.php\/wp-json\/wp\/v2\/posts\/3785\/revisions"}],"predecessor-version":[{"id":3793,"href":"https:\/\/jpbydesign.com\/index.php\/wp-json\/wp\/v2\/posts\/3785\/revisions\/3793"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jpbydesign.com\/index.php\/wp-json\/wp\/v2\/media\/3792"}],"wp:attachment":[{"href":"https:\/\/jpbydesign.com\/index.php\/wp-json\/wp\/v2\/media?parent=3785"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jpbydesign.com\/index.php\/wp-json\/wp\/v2\/categories?post=3785"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jpbydesign.com\/index.php\/wp-json\/wp\/v2\/tags?post=3785"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}