[postgresql] Query

Viewer

  1. WITH filter (varinicio, varfin, varfoliocomercial, varmotivo, varprioridad, vartiposolicitud, varproducto, varcliente, varfechainicio, varfechafin, varhavelistfolio, varactivos, varestatusrecuperacion, varubicacion, vardireccion) AS ( values(110'''''''''''''''''false'''''''''))
  2. SELECT recuperacion_id,
  3.        orden_servicio_productos_id,
  4.        prioridad_id,
  5.        prioridad,
  6.        motivo_id,
  7.        motivo,
  8.        tiposolicitud_id,
  9.        tiposolicitud,
  10.        producto,
  11.        os_id,
  12.        os_folio_comercial,
  13.        cliente_id,
  14.        cliente_nombre,
  15.        to_char(recuperacion_fecha_registro, 'DD/MM/YYYY') AS recuperacion_fecha_registro,
  16.        recuperacion_activa,
  17.        estatus_recuperacion_id,
  18.        estatus_recuperacion,
  19.        ubicacion_id,
  20.        ubicacion,
  21.        ubicacion_codigo,
  22.        direccion,
  23.        asignado_a,
  24.        to_char(ultima_actualizacion, 'DD/MM/YYYY HH24:MI') AS ultima_actualizacion
  25. FROM   (
  26.                 SELECT   *
  27.                 FROM     (
  28.                                   SELECT   *,
  29.                                            row_number() OVER ( ORDER BY recuperacion_id ASC ) AS row
  30.                                   FROM     (
  31.                                                       SELECT     req.id_recuperacion   AS recuperacion_id,
  32.                                                                  NULL                  AS orden_servicio_productos_id,
  33.                                                                  ccp.id                AS prioridad_id,
  34.                                                                  ccp.prioridad         AS prioridad,
  35.                                                                  ccm.id                AS motivo_id,
  36.                                                                  ccm.motivo            AS motivo,
  37.                                                                  cct.id                AS tiposolicitud_id,
  38.                                                                  cct.tiposolicitud     AS tiposolicitud,
  39.                                                                  cir.nombre_circuito   AS producto,
  40.                                                                  os.id_orden_servicio  AS os_id,
  41.                                                                  os.folio_os_comercial AS os_folio_comercial,
  42.                                                                  cli.id_cliente        AS cliente_id,
  43.                                                                  cli.nombre            AS cliente_nombre,
  44.                                                                  req.fecha_inicio      AS recuperacion_fecha_registro,
  45.                                                                  req.activo            AS recuperacion_activa,
  46.                                                                  req.id_estatus        AS estatus_recuperacion_id,
  47.                                                                  cere.descripcion      AS estatus_recuperacion,
  48.                                                                  ub.id_ubicacion       AS ubicacion_id,
  49.                                                                  ub.ubicacion          AS ubicacion,
  50.                                                                  ub.cod_preventa       AS ubicacion_codigo,
  51.                                                                  dir.calle
  52.                                                                             || ', '
  53.                                                                             || dir.no_int
  54.                                                                             || ', '
  55.                                                                             || dir.no_ext
  56.                                                                             || ', '
  57.                                                                             || dir.colonia
  58.                                                                             || ', '
  59.                                                                             || cd.nombre_ciudad
  60.                                                                             || ', '
  61.                                                                             || dir.codigo_postal AS direccion,
  62.                                                                  req.asignado_a                  AS asignado_a,
  63.                                                                  (
  64.                                                                         SELECT max(fecha_registro)
  65.                                                                         FROM   "SEGUIMIENTO_RECUPERACION"."RECUPERACION_EQUIPOS_USUARIOS_ATENCION"
  66.                                                                         WHERE  id_recuperacion = req.id_recuperacion) AS ultima_actualizacion
  67.                                                       FROM       "SEGUIMIENTO_RECUPERACION"."SOLICITUD_RECUPERACION"  AS sr
  68.                                                       INNER JOIN "DATOS_SISTEMAS"."CAT_TIPO_PRODUCTOS"                AS ctp
  69.                                                       ON         sr.id_cat_tipo_producto = ctp.id_cat_tipo_producto
  70.                                                       INNER JOIN "ENI"."CANCELACIONES" AS can
  71.                                                       ON         can.idcancelacion = sr.id_cancelacion
  72.                                                       INNER JOIN "ENI"."CIRCUITO" AS cir
  73.                                                       ON         cir.id_circuito = can.id_circuito
  74.                                                       LEFT JOIN  "ENI"."DIRECCION" AS dir
  75.                                                       ON         dir.id_circuito = cir.id_circuito
  76.                                                       LEFT JOIN  "ENI"."CIUDAD" AS cd
  77.                                                       ON         cd.idciudad = dir.idciudad
  78.                                                       LEFT JOIN  "ENI"."ESTADO" AS edo
  79.                                                       ON         edo.idestado = cd.idestado
  80.                                                       INNER JOIN "ENI"."ORDEN_SERVICIO" AS os
  81.                                                       ON         os.id_orden_servicio = cir.id_orden_servicio
  82.                                                       INNER JOIN "ENI"."CLIENTE" AS cli
  83.                                                       ON         cli.id_cliente = os.id_cliente
  84.                                                       INNER JOIN "ENI"."CANC_CAT_PRIORIDAD" AS ccp
  85.                                                       ON         can.prioridad = ccp.id
  86.                                                       INNER JOIN "ENI"."CANC_CAT_MOTIVO" AS ccm
  87.                                                       ON         can.motivo = ccm.id
  88.                                                       INNER JOIN "ENI"."CANC_CAT_TIPOSOLIC" AS cct
  89.                                                       ON         can.tiposolicitud = cct.id
  90.                                                       INNER JOIN "DATOS_SISTEMAS"."FOLIOS_PREVENTA" AS fp
  91.                                                       ON         fp.folio_preventa = os.folio_os_comercial
  92.                                                       INNER JOIN "DATOS_SISTEMAS"."CAT_UBICACION" AS ub
  93.                                                       ON         ub.id_ubicacion = fp.id_ubicacion
  94.                                                       INNER JOIN "SEGUIMIENTO_RECUPERACION"."RECUPERACION_EQUIPOS" AS req
  95.                                                       ON         req.id_recuperacion = sr.id_recuperacion
  96.                                                       INNER JOIN "SEGUIMIENTO_RECUPERACION"."CAT_ESTATUS_RECUPERACION_EQUIPO" AS cere
  97.                                                       ON         cere.id_estatus = req.id_estatus
  98.                                                       UNION ALL
  99.                                                       SELECT     req.id_recuperacion             AS recuperacion_id,
  100.                                                                  osp.id_orden_servicio_productos AS orden_servicio_productos_id,
  101.                                                                  NULL                            AS prioridad_id,
  102.                                                                  NULL                            AS prioridad,
  103.                                                                  NULL                            AS motivo_id,
  104.                                                                  NULL                            AS motivo,
  105.                                                                  NULL                            AS tiposolicitud_id,
  106.                                                                  NULL                            AS tiposolicitud,
  107.                                                                  cp.descripcion                  AS producto,
  108.                                                                  os.id_orden_servicio            AS os_id,
  109.                                                                  os.folio_os_comercial           AS os_folio_comercial,
  110.                                                                  cli.id_cliente                  AS cliente_id,
  111.                                                                  cli.nombre                      AS cliente_nombre,
  112.                                                                  req.fecha_inicio                AS recuperacion_fecha_registro,
  113.                                                                  req.activo                      AS recuperacion_activa,
  114.                                                                  req.id_estatus                  AS estatus_recuperacion_id,
  115.                                                                  cere.descripcion                AS estatus_recuperacion,
  116.                                                                  ub.id_ubicacion                 AS ubicacion_id,
  117.                                                                  ub.ubicacion                    AS ubicacion,
  118.                                                                  ub.cod_preventa                 AS ubicacion_codigo,
  119.                                                                  dir.calle
  120.                                                                             || ', '
  121.                                                                             || dir.no_int
  122.                                                                             || ', '
  123.                                                                             || dir.no_ext
  124.                                                                             || ', '
  125.                                                                             || dir.colonia
  126.                                                                             || ', '
  127.                                                                             || cd.nombre_ciudad
  128.                                                                             || ', '
  129.                                                                             || dir.codigo_postal AS direccion,
  130.                                                                  req.asignado_a                  AS asignado_a,
  131.                                                                  (
  132.                                                                         SELECT max(fecha_registro)
  133.                                                                         FROM   "SEGUIMIENTO_RECUPERACION"."RECUPERACION_EQUIPOS_USUARIOS_ATENCION"
  134.                                                                         WHERE  id_recuperacion = req.id_recuperacion) AS ultima_actualizacion
  135.                                                       FROM       "SEGUIMIENTO_RECUPERACION"."SOLICITUD_RECUPERACION"  AS sr
  136.                                                       INNER JOIN "SEGUIMIENTO_RECUPERACION"."RECUPERACION_EQUIPOS"    AS req
  137.                                                       ON         req.id_recuperacion = sr.id_recuperacion
  138.                                                       INNER JOIN "ENI"."ORDEN_SERVICIO_PRODUCTOS" AS osp
  139.                                                       ON         osp.id_orden_servicio_productos = sr.id_orden_servicio_productos
  140.                                                       INNER JOIN "ENI"."ORDEN_SERVICIO" AS os
  141.                                                       ON         os.id_orden_servicio = osp.id_orden_servicio
  142.                                                       INNER JOIN "ENI"."CIRCUITO" AS cir
  143.                                                       ON         cir.id_orden_servicio = os.id_orden_servicio
  144.                                                       LEFT JOIN  "ENI"."DIRECCION" AS dir
  145.                                                       ON         dir.id_circuito = cir.id_circuito
  146.                                                       LEFT JOIN  "ENI"."CIUDAD" AS cd
  147.                                                       ON         cd.idciudad = dir.idciudad
  148.                                                       LEFT JOIN  "ENI"."ESTADO" AS edo
  149.                                                       ON         edo.idestado = cd.idestado
  150.                                                       INNER JOIN "DATOS_SISTEMAS"."CAT_PRODUCTOS" AS cp
  151.                                                       ON         osp.id_producto = cp.id_producto
  152.                                                       INNER JOIN "ENI"."CLIENTE" AS cli
  153.                                                       ON         cli.id_cliente = os.id_cliente
  154.                                                       INNER JOIN "DATOS_SISTEMAS"."FOLIOS_PREVENTA" AS fp
  155.                                                       ON         fp.folio_preventa = os.folio_os_comercial
  156.                                                       INNER JOIN "DATOS_SISTEMAS"."CAT_UBICACION" AS ub
  157.                                                       ON         ub.id_ubicacion = fp.id_ubicacion
  158.                                                       INNER JOIN "SEGUIMIENTO_RECUPERACION"."CAT_ESTATUS_RECUPERACION_EQUIPO" AS cere
  159.                                                       ON         cere.id_estatus = req.id_estatus
  160.                                                       WHERE      req.id_recuperacion NOT IN
  161.                                                                  (
  162.                                                                         SELECT id_recuperacion
  163.                                                                         FROM   "SEGUIMIENTO_RECUPERACION"."SOLICITUD_RECUPERACION"
  164.                                                                         WHERE  id_orden_servicio_productos IS NULL) ) AS tabla
  165.                                   WHERE
  166.                                            CASE
  167.                                                     WHEN
  168.                                                              (
  169.                                                                     SELECT varactivos ::text
  170.                                                                     FROM   filter) = '' THEN true = true
  171.                                                     ELSE recuperacion_activa =
  172.                                                              (
  173.                                                                     SELECT varactivos ::bool
  174.                                                                     FROM   filter)
  175.                                            END
  176.                                   AND
  177.                                            CASE
  178.                                                     WHEN
  179.                                                              (
  180.                                                                     SELECT varfoliocomercial ::text
  181.                                                                     FROM   filter) = '' THEN true = true
  182.                                                     ELSE os_folio_comercial =
  183.                                                              (
  184.                                                                     SELECT varfoliocomercial ::text
  185.                                                                     FROM   filter)
  186.                                            END
  187.                                   AND
  188.                                            CASE
  189.                                                     WHEN
  190.                                                              (
  191.                                                                     SELECT varprioridad ::text
  192.                                                                     FROM   filter) = '' THEN true = true
  193.                                                     ELSE prioridad_id =
  194.                                                              (
  195.                                                                     SELECT varprioridad ::integer
  196.                                                                     FROM   filter)
  197.                                            END
  198.                                   AND
  199.                                            CASE
  200.                                                     WHEN
  201.                                                              (
  202.                                                                     SELECT varmotivo ::text
  203.                                                                     FROM   filter) = '' THEN true = true
  204.                                                     ELSE motivo_id =
  205.                                                              (
  206.                                                                     SELECT varmotivo ::integer
  207.                                                                     FROM   filter)
  208.                                            END
  209.                                   AND
  210.                                            CASE
  211.                                                     WHEN
  212.                                                              (
  213.                                                                     SELECT vartiposolicitud ::text
  214.                                                                     FROM   filter) = '' THEN true = true
  215.                                                     ELSE tiposolicitud_id =
  216.                                                              (
  217.                                                                     SELECT vartiposolicitud ::integer
  218.                                                                     FROM   filter)
  219.                                            END
  220.                                   AND
  221.                                            CASE
  222.                                                     WHEN
  223.                                                              (
  224.                                                                     SELECT varestatusrecuperacion ::text
  225.                                                                     FROM   filter) = '' THEN true = true
  226.                                                     ELSE estatus_recuperacion_id =
  227.                                                              (
  228.                                                                     SELECT varestatusrecuperacion ::integer
  229.                                                                     FROM   filter)
  230.                                            END
  231.                                   AND
  232.                                            CASE
  233.                                                     WHEN
  234.                                                              (
  235.                                                                     SELECT varubicacion ::text
  236.                                                                     FROM   filter) = '' THEN true = true
  237.                                                     ELSE ubicacion_codigo =
  238.                                                              (
  239.                                                                     SELECT varubicacion ::text
  240.                                                                     FROM   filter)
  241.                                            END
  242.                                   AND
  243.                                            CASE
  244.                                                     WHEN
  245.                                                              (
  246.                                                                     SELECT varfechainicio::text
  247.                                                                     FROM   filter) = '' THEN true = true
  248.                                                     ELSE
  249.                                                              CASE
  250.                                                                       WHEN
  251.                                                                                (
  252.                                                                                       SELECT varfechafin::text
  253.                                                                                       FROM   filter) = '' THEN recuperacion_fecha_registro BETWEEN to_timestamp(((to_date(
  254.                                                                                (
  255.                                                                                       SELECT varfechainicio ::text
  256.                                                                                       FROM   filter)'YYYY-MM-DD'))::text)
  257.                                                                                         || ' 00:00:00''YYYY-MM-DD HH24:MI:SS')
  258.                                                                       AND      to_timestamp(((to_date(
  259.                                                                                (
  260.                                                                                       SELECT varfechainicio ::text
  261.                                                                                       FROM   filter)'YYYY-MM-DD'))::text)
  262.                                                                                         || ' 23:59:59''YYYY-MM-DD HH24:MI:SS')
  263.                                                                       ELSE recuperacion_fecha_registro BETWEEN to_timestamp(((to_date(
  264.                                                                                (
  265.                                                                                       SELECT varfechainicio ::text
  266.                                                                                       FROM   filter)'YYYY-MM-DD'))::text)
  267.                                                                                         || ' 00:00:00''YYYY-MM-DD HH24:MI:SS')
  268.                                                                       AND      to_timestamp(((to_date(
  269.                                                                                (
  270.                                                                                       SELECT varfechafin ::text
  271.                                                                                       FROM   filter)'YYYY-MM-DD'))::text)
  272.                                                                                         || ' 23:59:59''YYYY-MM-DD HH24:MI:SS')
  273.                                                              END
  274.                                            END
  275.                                   AND
  276.                                            CASE
  277.                                                     WHEN
  278.                                                              (
  279.                                                                     SELECT varhavelistfolio::bool
  280.                                                                     FROM   filter)= false THEN true = true
  281.                                                     ELSE os_folio_comercial IN ('')
  282.                                            END
  283.                                   AND      upper(producto) LIKE concat('%'upper(
  284.                                                                                    (
  285.                                                                                    SELECT varproducto ::text
  286.                                                                                    FROM   filter))'%')
  287.                                   AND      upper(cliente_nombre) LIKE concat('%'upper(
  288.                                                                                          (
  289.                                                                                          SELECT varcliente ::text
  290.                                                                                          FROM   filter))'%')
  291.                                   AND      upper(
  292.                                            CASE
  293.                                                     WHEN direccion IS NULL THEN ''
  294.                                                     ELSE direccion
  295.                                            END) LIKE concat('%'upper(
  296.                                                                         (
  297.                                                                         SELECT vardireccion ::text
  298.                                                                         FROM   filter))'%') ) AS tabla
  299.                 ORDER BY recuperacion_id ASC ) AS tabla
  300. WHERE  row BETWEEN
  301.                     (
  302.                     SELECT varinicio::integer
  303.                     FROM   filter)
  304. AND
  305.        (
  306.               SELECT varfin::integer
  307.               FROM   filter)

Editor

You can edit this paste and save as new:


File Description
  • Query
  • Paste Code
  • 17 Sep-2021
  • 42.98 Kb
You can Share it: