usando transact tabla recursivas rapidos query management jerárquicas ejemplos datos crear consultas comandos atajos sql-server-2005 crystal-reports count group-by

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