¿cómo hago?

      • 1,552
      • mensajes
      • miembro desde
      • 05/12/04
    10/03/2006
    #1 ¿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

  1. ¿Este tema te pareció interesante? Compártelo!

    ¿No es lo que buscabas? Intenta buscar un tema similar

    3 comentarios / 644 Visitas

      • 1,070
      • mensajes
      • miembro desde
      • 24/04/03
    13/03/2006
    #2 Re: ¿cómo hago?

    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

      • 1,552
      • mensajes
      • miembro desde
      • 05/12/04
    14/03/2006
    #3 Re: ¿cómo hago?

    Gracias master! funciona ok!, lo único que el where está de mas, pero es la consulta, anda de 10.
    Gracias, me salvaste!

      • 1,070
      • mensajes
      • miembro desde
      • 24/04/03
    15/03/2006
    #4 Re: ¿cómo hago?

    Mira vos que error que deje pasar...

    Bueno, me alegro que te halla servido.