Ver Mensaje Individual
  #3 (permalink)  
Antiguo 04/06/2018, 10:49
ocp001a
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: EXtraño caso con vistas, resultados inestables.

Esta es la consulta que genera la vista:


Código SQL:
Ver original
  1. SELECT
  2.     ven_doc_fecha_documento AS `ven_doc_fecha_documento`,
  3.     ven_doc_id_moneda AS `ven_doc_id_moneda`,
  4.     ven_doc_id_tipo_movimiento AS `ven_doc_id_tipo_movimiento`,
  5.     ven_doc_status AS `ven_doc_status`,
  6.     cat_cli_codigo AS `cat_cli_codigo`,
  7.     cat_cli_rfc AS `cat_cli_rfc`,
  8.     cat_cli_nombre AS `cat_cli_nombre`,
  9.     ven_doc_folio AS `ven_doc_folio`,
  10.     cat_iva_porcentaje AS `cat_iva_porcentaje`,
  11.     cat_ieps_porcentaje AS `cat_ieps_porcentaje`,
  12.     cat_alm_id AS `cat_alm_id`,
  13.     cat_alm_codigo AS `cat_alm_codigo`,
  14.     cat_alm_descripcion AS `cat_alm_descripcion`,
  15.     cat_ven_codigo AS `cat_ven_codigo`,
  16.     cat_ven_nombre AS `cat_ven_nombre`,
  17.     cat_clf_clasificacion1 AS `cat_clf_clasificacion1`,
  18.     cat_clf_clasificacion2 AS `cat_clf_clasificacion2`,
  19.     cat_clf_clasificacion3 AS `cat_clf_clasificacion3`,
  20.     cat_clf_descripcion AS `cat_clf_descripcion`,
  21.     cat_clf_descripcion2 AS `cat_clf_descripcion2`,
  22.     cat_clf_descripcion3 AS `cat_clf_descripcion3`,
  23.     cat_art_codigo1 AS `cat_art_codigo1`,
  24.     cat_art_descripcion1 AS `cat_art_descripcion1`,
  25.     ven_par_descuento1,
  26.     ven_par_descuento2,
  27.     ven_par_descuento3,
  28.     ven_par_descuento4,
  29.     ven_par_descuento5,
  30.     ven_par_cantidad_total AS `Unidades`,
  31.     ven_par_devueltas AS `UnidadesDevueltas`,
  32.     ven_par_costo AS `Costo`,
  33.     (ven_par_costo/ven_par_cantidad_total)*ven_par_devueltas AS `CostoDevoluciones`,
  34.     ven_par_precio_uni*ven_par_cantidad_total AS `Importe`,
  35.    
  36.     IF(
  37.         ven_par_descuento1>0,(1-
  38.             (
  39.                 (1-(ven_par_descuento1/100))*
  40.                 (IF(ven_par_descuento2>0,1-(ven_par_descuento2/100),1))*
  41.                 (IF(ven_par_descuento3>0,1-(ven_par_descuento3/100),1))*
  42.                 (IF(ven_par_descuento4>0,1-(ven_par_descuento4/100),1))*
  43.                 (IF(ven_par_descuento5>0,1-(ven_par_descuento5/100),1))
  44.             ))*100,
  45.             0
  46.    
  47.     ) AS `porcentajeDescuento`,
  48.     IF(ven_par_descuento1>0,((SELECT porcentajeDescuento)/100)*(ven_par_precio_uni*ven_par_cantidad_total),0) AS importeDescuento,
  49.  
  50.     ven_par_precio_uni*(IF(ven_par_descuento1>0,1-((SELECT porcentajeDescuento)/100),1)) AS importeUniConDescuento,
  51.     ven_par_precio_uni*(IF(ven_par_descuento1>0,1-((SELECT porcentajeDescuento)/100),1))*ven_par_cantidad_total AS importeConDescuento,
  52.    
  53.     ven_par_tipo_cambio AS `TipoCambio`,
  54.  
  55.     ((SELECT importeUniConDescuento)*ven_par_tipo_cambio)*(cat_ieps_porcentaje/100)*ven_par_cantidad_total AS `ImporteIEPS`,
  56.     ((SELECT importeUniConDescuento)*ven_par_tipo_cambio)*ven_par_cantidad_total AS `ImporteMN`,
  57.     (((SELECT importeUniConDescuento)*ven_par_tipo_cambio)*(cat_ieps_porcentaje/100)+(SELECT importeUniConDescuento)*ven_par_tipo_cambio)*ven_par_cantidad_total AS `ImporteMNIEPS`,
  58.  
  59.     ((((SELECT importeUniConDescuento))*(cat_ieps_porcentaje/100)+(SELECT importeUniConDescuento)*ven_par_tipo_cambio)*ven_par_cantidad_total)*(cat_iva_porcentaje/100) AS `ImporteIVA`,
  60.  
  61.     ((((SELECT importeUniConDescuento)*ven_par_tipo_cambio)*(cat_ieps_porcentaje/100)+(SELECT importeUniConDescuento)*ven_par_tipo_cambio)*ven_par_cantidad_total)+
  62.     (((((SELECT importeUniConDescuento))*(cat_ieps_porcentaje/100)+(SELECT importeUniConDescuento)*ven_par_tipo_cambio)*ven_par_cantidad_total)*(cat_iva_porcentaje/100)) AS `ImporteConIVA`,
  63.  
  64.  
  65.     ((SELECT importeUniConDescuento)*ven_par_devueltas*ven_par_tipo_cambio)*-1 AS `ImporteDevoluciones`,
  66.     (((SELECT importeUniConDescuento)*ven_par_tipo_cambio)*(cat_ieps_porcentaje/100)*ven_par_devueltas)*-1 AS `DevolucionesIEPS`,
  67.     ((((SELECT importeUniConDescuento)*ven_par_tipo_cambio)*(cat_ieps_porcentaje/100)+(SELECT importeUniConDescuento)*ven_par_tipo_cambio)*ven_par_devueltas)*-1 AS `ImporteDevolucionesMN`,
  68.     (((((SELECT importeUniConDescuento))*(cat_ieps_porcentaje/100)+(SELECT importeUniConDescuento)*ven_par_tipo_cambio)*ven_par_devueltas)*(cat_iva_porcentaje/100))*-1 AS `DevolucionesIVA`,
  69.  
  70.     (((((SELECT importeUniConDescuento)*ven_par_tipo_cambio)*(cat_ieps_porcentaje/100)+(SELECT importeUniConDescuento)*ven_par_tipo_cambio)*ven_par_devueltas)+
  71.     (((((SELECT importeUniConDescuento))*(cat_ieps_porcentaje/100)+(SELECT importeUniConDescuento)*ven_par_tipo_cambio)*ven_par_devueltas)*(cat_iva_porcentaje/100)))*-1 AS `ImporteDevolucionesConIVA`,
  72.  
  73.     ((((SELECT importeUniConDescuento)*ven_par_tipo_cambio)*(cat_ieps_porcentaje/100)+(SELECT importeUniConDescuento)*ven_par_tipo_cambio)*ven_par_cantidad_total)-
  74.     (((SELECT importeUniConDescuento)*ven_par_tipo_cambio)*(cat_ieps_porcentaje/100)+(SELECT importeUniConDescuento)*ven_par_tipo_cambio)*ven_par_devueltas AS `Total`,
  75.    
  76.     (((((SELECT importeUniConDescuento)*ven_par_tipo_cambio)*(cat_ieps_porcentaje/100)+(SELECT importeUniConDescuento)*ven_par_tipo_cambio)*ven_par_cantidad_total)-
  77.     (((SELECT importeUniConDescuento)*ven_par_tipo_cambio)*(cat_ieps_porcentaje/100)+(SELECT importeUniConDescuento)*ven_par_tipo_cambio)*ven_par_devueltas) -
  78.     (ven_par_costo+((ven_par_costo/ven_par_cantidad_total)*ven_par_devueltas)) AS `Utilidad`
  79.    
  80.    
  81. FROM
  82.     ventas_documentos
  83. JOIN
  84.     ventas_partidas
  85.         ON
  86.     ven_par_id_documento = ven_doc_id
  87. JOIN
  88.     cat_articulos
  89.         ON
  90.     cat_art_id = ven_par_id_articulo
  91. JOIN
  92.     cat_clasificaciones
  93.         ON
  94.     cat_clf_id = cat_art_id_clasificacion
  95. JOIN
  96.     cat_iva
  97.         ON
  98.     cat_iva_id = ven_par_id_iva
  99. JOIN
  100.     cat_ieps
  101.         ON
  102.     cat_ieps_id = ven_par_id_ieps
  103. JOIN
  104.     cat_almacenes
  105.         ON
  106.     cat_alm_id = ven_doc_id_almacen
  107. JOIN
  108.     cat_clientes
  109.         ON
  110.     cat_cli_id = ven_doc_id_cliente
  111. JOIN
  112.     cat_vendedores
  113.         ON
  114.     cat_ven_id = ven_doc_id_vendedor

Cabe señalar que esta misma vista en otras bases de datos no genera el error, o al menos los usuarios no han reportado nada.