sql-server-2005 - transact - ejemplos de sql en base de datos
Comando de combinaciones dentro de un grupo (1)
Necesito una forma de contar las combinaciones de códigos por pacientes, así que necesito saber en base a la duración total de cada protocolo de servicio del programa, por lo que, según la imagen siguiente, necesito que sea así.
Paciente: 00000036
Adult CSS IND 240
Adulto OP IND 120
Paciente: 00000040
Adult CSS IND 420
Adulto OP IND 60
Estoy usando Microsoft SQL Server 2005 y preferiría una corrección en SQL, pero si pudiera hacerse en cristal, podría trabajar con eso. Gracias de antemano.
select
pct.patient_id,
pct.clinic_id,
pct.service_id,
pct.program_id,
pct.protocol_id,
pct.proc_duration
from patient_clin_tran pct
join patient p
on pct.patient_id = p.patient_id and pct.episode_id = p.episode_id
join patient_custom pc
on pct.patient_id = pc.patient_id
join staff s
on pct.attending_id = s.staff_id
where pc.health_home = ''Y''
group by pct.patient_id, pct.clinic_id, pct.service_id, pct.program_id, pct.protocol_id, pct.proc_duration
order by pct.patient_id, pct.clinic_id, pct.service_id, pct.protocol_id
Estabas cerca. Sí necesita GROUP BY
, pero no desea GROUP BY
la columna de duración. En su lugar, desea utilizar la función SUM
en la lista SELECT
en su columna proc_duration
:
select
pct.patient_id,
pct.clinic_id,
pct.service_id,
pct.program_id,
pct.protocol_id,
SUM(pct.proc_duration) AS [Total Duration]
FROM patient_clin_tran pct
join patient p
on pct.patient_id = p.patient_id and pct.episode_id = p.episode_id
join patient_custom pc
on pct.patient_id = pc.patient_id
join staff s
on pct.attending_id = s.staff_id
where pc.health_home = ''Y''
group by pct.patient_id, pct.clinic_id, pct.service_id, pct.program_id, pct.protocol_id
order by pct.patient_id, pct.clinic_id, pct.service_id, pct.program_id, pct.protocol_id