Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. WITH ttl AS (SELECT sum(apago) as pagos,
  2.               sum(movs) as movimientos,
  3.               rut_med,
  4.               periodo,
  5.               cod_suc
  6.        FROM (
  7.               SELECT sum(foto.apago) as apago,
  8.                      count(foto.apago) as movs,
  9.                      foto.rut_med,
  10.                      foto.periodo,
  11.                      foto.cod_suc
  12.               FROM h_foto foto
  13.               WHERE 1 = 1  AND substr(periodo,1,4)  =  '2019'  
  14.               GROUP BY rut_med,
  15.                        periodo,
  16.                        cod_suc
  17.               UNION
  18.               SELECT sum(valor_dcto) * - 1 as valor_dcto,
  19.                      count(valor_dcto) as movs,
  20.                      rut_med,
  21.                      periodo,
  22.                      cod_suc
  23.               FROM h_foto_dcto_desevo
  24.               WHERE 1 = 1  AND substr(periodo,1,4)  =  '2019'  
  25.               GROUP BY rut_med,
  26.                        periodo,
  27.                        cod_suc
  28.             ) aux
  29.        GROUP BY rut_med,
  30.                 periodo,
  31.                 cod_suc),
  32. diag AS (SELECT
  33.                      mod.id_concepto_fijo,
  34.                      mod.valor,
  35.                      mod.cantidad,
  36.                     (mod.valor * mod.cantidad) as total_concepto,
  37.                      mod.rut_med,
  38.                      mod.periodo,
  39.                      mod.cod_suc
  40.               from mod_diag_foto mod
  41.               where substr(periodo,1,4)  =  '2019'
  42.               GROUP BY rut_med,
  43.                        periodo,
  44.                        cod_suc,
  45.                        mod.id_concepto_fijo,
  46.                        valor,
  47.                        cantidad)
  48. SELECT
  49.        M.nom_med || ' ' || M.apepat_med || ' ' || M.apemat_med as name,
  50.        usu.des_tip_usu,
  51.        CASE M.est_med
  52.             WHEN 1 THEN 'ACTIVO'
  53.             ELSE 'INACTIVO'
  54.        END as estado_medico,
  55.        bancos.rut_sociedad || ' ' || bancos.rut_sociedad_dig as rut_sociedad,
  56.        cs.nom_suc,
  57.        pagostot.periodo,
  58.        CASE
  59.             WHEN esp.cod_esp = 22 THEN (pagostot.pagos - (case when dx.id_concepto_fijo = 1 then dx.total_concepto else 0 END))
  60.             ELSE pagostot.pagos
  61.         END as honorario,
  62.        case when dx.id_concepto_fijo = 0 then dx.cantidad else 0 END as cantidad_turnos,
  63.        case when dx.id_concepto_fijo = 0 then dx.total_concepto else 0 END as dx_fijo,
  64.        case when dx.id_concepto_fijo = 1 then dx.total_concepto else 0 END as rayos,
  65.        case when dx.id_concepto_fijo = 2 then dx.total_concepto else 0 END as orto,
  66.        case when dx.id_concepto_fijo = 3 then dx.total_concepto else 0 END as implan,
  67.        case when dx.id_concepto_fijo = 4 then dx.total_concepto else 0 END as sobremeta,
  68.        
  69.        coalesce(sum(dx.total_concepto), 0) as pago_diag,
  70.        CASE
  71.             WHEN esp.cod_esp = 22 THEN COALESCE((pagostot.pagos - (case when dx.id_concepto_fijo = 1 then dx.total_concepto else 0 END)) + coalesce(sum(dx.total_concepto), 0) ,0)
  72.             ELSE pagostot.pagos
  73.         END as total_emision
  74. FROM h_cab_liq H
  75.      INNER JOIN medico M ON M.rut_med = H.rut_med
  76.      LEFT JOIN medico_especialidad esp ON esp.rut_med = m.rut_med AND esp.cod_esp = 22
  77.      INNER JOIN tip_usu_rut tip ON tip.rut = M.rut_med
  78.      INNER JOIN tipo_usuario usu ON usu.cod_tip_usu = tip.cod_tip_usu
  79.      LEFT JOIN mod_datos_bancarios bancos ON bancos.rut_med = M.rut_med
  80.      LEFT JOIN ttl pagostot ON pagostot.rut_med = H.rut_med AND to_date(pagostot.periodo,
  81.        'YYYYMM') =(to_timestamp(H.fecha_ini) + interval '1h')::date
  82.        
  83.      LEFT JOIN diag dx ON dx.rut_med = H.rut_med AND to_date(dx.periodo,
  84.        'YYYYMM') =(to_timestamp(H.fecha_ini) + interval '1h')::date
  85.        
  86.      INNER JOIN cliente_sucursal CS ON CS.cod_suc = pagostot.cod_suc
  87. WHERE H.estado = 'ING' AND
  88.       pagostot.movimientos > 0 AND EXTRACT(YEAR FROM TIMESTAMP WITH TIME ZONE 'epoch' + fecha_ini * INTERVAL '1 second')=2019
  89. GROUP BY m.rut_med,
  90.         M.nom_med,
  91.          M.apepat_med,
  92.           M.apemat_med,
  93.           usu.des_tip_usu,M.est_med,bancos.rut_sociedad,bancos.rut_sociedad_dig,cs.nom_suc,pagostot.periodo,esp.cod_esp,pagostot.pagos,dx.id_concepto_fijo,dx.total_concepto,
  94.           dx.cantidad
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement