handkot's method #2 is very efficient, the other code posted isn't.
😎
I would do this slightly differently for the sake of simplicity and code maintenance.
USE TEEST;
GO
SET NOCOUNT ON;
DECLARE @TXML XML = '<Data>
<Interventions_x0020_Provided>
<Interventions_x0020_Provided_x0020_SubTable>
<Intervention>On-site (Observations, Consultation)</Intervention>
<Provided>true</Provided>
<Minutes>35</Minutes>
<Describe>Completed observation. Discussed with Janet (teacher) how Aisling''s behavior has been.</Describe>
</Interventions_x0020_Provided_x0020_SubTable>
<Interventions_x0020_Provided_x0020_SubTable>
<Intervention>Behavior Plan Meeting</Intervention>
</Interventions_x0020_Provided_x0020_SubTable>
<Interventions_x0020_Provided_x0020_SubTable>
<Intervention>Assessment/ Screening</Intervention>
</Interventions_x0020_Provided_x0020_SubTable>
<Interventions_x0020_Provided_x0020_SubTable>
<Intervention>Coaching</Intervention>
</Interventions_x0020_Provided_x0020_SubTable>
<Interventions_x0020_Provided_x0020_SubTable>
<Intervention>Telephone Consultation or Coaching</Intervention>
</Interventions_x0020_Provided_x0020_SubTable>
<Interventions_x0020_Provided_x0020_SubTable>
<Intervention>Case Management (Referrals, care coordination)</Intervention>
</Interventions_x0020_Provided_x0020_SubTable>
<Interventions_x0020_Provided_x0020_SubTable>
<Intervention>Documentation (Reports, Materials)</Intervention>
</Interventions_x0020_Provided_x0020_SubTable>
<Interventions_x0020_Provided_x0020_SubTable>
<Intervention>Parent Intake/ home or phone</Intervention>
</Interventions_x0020_Provided_x0020_SubTable>
<Interventions_x0020_Provided_x0020_SubTable>
<Intervention>Travel</Intervention>
<Provided>true</Provided>
<Minutes>45</Minutes>
</Interventions_x0020_Provided_x0020_SubTable>
<Interventions_x0020_Provided_x0020_SubTable>
<Intervention>Training</Intervention>
</Interventions_x0020_Provided_x0020_SubTable>
</Interventions_x0020_Provided>
</Data>';
;WITH BASE_DATA AS
(
SELECT
IPS.DATA.value('(Intervention/text())[1]','VARCHAR(100)') AS Intervention
,IPS.DATA.value('(Minutes/text())[1]','INT') AS [Minutes]
FROM @TXML.nodes('Data/Interventions_x0020_Provided/Interventions_x0020_Provided_x0020_SubTable') IPS(DATA)
WHERE IPS.DATA.exist('(Provided[text()[1] = "true"])')=1
)
SELECT
SUM(CASE WHEN BD.Intervention = 'On-site (Observations, Consultation)' THEN BD.[Minutes] ELSE 0 END) AS [On-site (Observations, Consultation)]
,SUM(CASE WHEN BD.Intervention = 'Behavior Plan Meeting' THEN BD.[Minutes] ELSE 0 END) AS [Behavior Plan Meeting]
,SUM(CASE WHEN BD.Intervention = 'Assessment/ Screening' THEN BD.[Minutes] ELSE 0 END) AS [Assessment/ Screening]
,SUM(CASE WHEN BD.Intervention = 'Coaching' THEN BD.[Minutes] ELSE 0 END) AS [Coaching]
,SUM(CASE WHEN BD.Intervention = 'Telephone Consultation or Coaching' THEN BD.[Minutes] ELSE 0 END) AS [Telephone Consultation or Coaching]
,SUM(CASE WHEN BD.Intervention = 'Case Management (Referrals, care coordination)' THEN BD.[Minutes] ELSE 0 END) AS [Case Management (Referrals, care coordination)]
,SUM(CASE WHEN BD.Intervention = 'Documentation (Reports, Materials)' THEN BD.[Minutes] ELSE 0 END) AS [Documentation (Reports, Materials)]
,SUM(CASE WHEN BD.Intervention = 'Parent Intake/ home or phone' THEN BD.[Minutes] ELSE 0 END) AS [Parent Intake/ home or phone]
,SUM(CASE WHEN BD.Intervention = 'Travel' THEN BD.[Minutes] ELSE 0 END) AS [Travel]
,SUM(CASE WHEN BD.Intervention = 'Training' THEN BD.[Minutes] ELSE 0 END) AS [Training]
FROM BASE_DATA BD;