¿cómo hago?
-
El tema que por ejemplo, tengo la prestación 4, a la que no le asigné recursos, y el script me devuelve
cod gastos en Recursos Gastos en Profesional
00001 373.0 20.5
00002 200.0 10.25
00003 10.0 10.5
El tema quiero que me aparezca la prestación 0004 con gastos en
recursos 0.00 ya que no tiene recursos asignados, pero sí tiene gastos
en profesional.
code:
use efimed3
SELECT prestacion.codigo_prestacion,
sum(recurso.precio_recurso * asignacion_recursos.cantidad_recurso) as
'Gastos en Recursos',
sum(prestacion.total_dias_prestacion* prestacion.arancel_prestacion)
as 'Gastos Profesional'
FROM asignacion_recursos,
recurso , Prestacion
WHERE ( asignacion_recursos.nombre_recurso = recurso.nombre_recurso ) and
( ( asignacion_recursos.codigo_prestacion =
prestacion.codigo_prestacion ) )
group by prestacion.codigo_prestacion
order by prestacion.codigo_prestacion
mas o menos el diseño de la bd
la tabla prestacion tiene
codigoprestacion
gastos en profesional que ves como se calcula
la tabla asignacion recursos tiene
codigoprestacion
nombrerecurso
cantidadrecurso
y la tabla recurso tiene
nombrerecurso
cantidadrecurso //lo que tengo en stock
preciorecursos //el precio unitario
Estoy usando sql server 2000 -
Fijate si te funciona asi....
use efimed3
SELECT
p.codigo_prestacion,
sum(isnull(r.precio_recurso, 0) * isnull(ar.cantidad_recurso, 0)) as 'Gastos en Recursos',
sum(isnull(p.total_dias_prestacion, 0) * isnull(p.arancel_prestacion,0)) as 'Gastos Profesional'
FROM
Prestacion p left join asignacion_recursos ar on p.codigo_prestacion = ar.codigo_prestacion
left join recurso r on ar.nombre_recurso = r.nombre_recurso
WHERE
group by
p.codigo_prestacion
order by
p.codigo_prestacion
