none
Se duplican algunos registros RRS feed

  • Pregunta

  • Buenas tardes tengo una consulta la cual me trae algunos campos duplicados y no se por que, ya que las tablas origen solo aparecen una sola ves, pero en la consulta se reflejan algunos duplicados, que me faltaría para que la integridad de la información sea correcta. esta es mi Query.

    SELECT RES.*, (RES.PRECIOTOTAL - COSTOTOTAL) AS UTILIDAD FROM
    (SELECT   MINVE01.CVE_ART, INVE01.DESCR, INVE01.LIN_PROD, MINVE01.NUM_MOV AS REGISTRO, MINVE01.REFER, MINVE01.CVE_CPTO, CONM01.DESCR AS CONC_DESCR, MINVE01.ALMACEN, CLIE01.CLAVE, CLIE01.NOMBRE, MINVE01.FECHA_DOCU, MINVE01.CANT, 
                             MINVE01.COSTO, MINVE01.PRECIO, PAR_FACTF01.TIP_CAM,
    IIF(MINVE01.CVE_CPTO<50,MINVE01.CANT*-1,MINVE01.CANT) AS CANTIDAD, 
    IIF(MINVE01.CVE_CPTO<50,MINVE01.CANT*-1,MINVE01.CANT)*(MINVE01.COSTO) AS COSTOTOTAL,
    IIF(MINVE01.CVE_CPTO<50,MINVE01.CANT*-1,MINVE01.CANT)*(MINVE01.PRECIO) AS PRECIOTOTAL
    FROM            PAR_FACTF01 INNER JOIN
                             INVE01 ON PAR_FACTF01.CVE_ART = INVE01.CVE_ART INNER JOIN
                             CONM01 INNER JOIN
                             MINVE01 ON CONM01.CVE_CPTO = MINVE01.CVE_CPTO INNER JOIN
                             CLIE01 ON MINVE01.CLAVE_CLPV = CLIE01.CLAVE ON PAR_FACTF01.CVE_DOC = MINVE01.REFER
    WHERE INVE01.CVE_ART = MINVE01.CVE_ART AND CONM01.CVE_CPTO = MINVE01.CVE_CPTO AND CLIE01.CLAVE = MINVE01.CLAVE_CLPV 
    AND (MINVE01.CVE_CPTO In (2,4,51,56))) AS RES

    La validación para que no se repitan los datos seria el campo MINVE01.NUM_MOV AS REGISTRO ya que ese en un numero único
    • Editado Jesus LL martes, 25 de agosto de 2020 20:52
    martes, 25 de agosto de 2020 20:48

Todas las respuestas

  • Hola Jesus LL:

    Lo primero que se necesita saber, es que significa para ti, que te trae campos duplicados.

    He mirado la consulta, porque las relaciones no están nada claras y la he ordenado de este modo.

    SELECT  MINVE01.CVE_ART
    	  , INVE01.DESCR
    	  , INVE01.LIN_PROD
    	  , MINVE01.NUM_MOV AS REGISTRO
    	  , MINVE01.REFER
    	  , MINVE01.CVE_CPTO
    	  , CONM01.DESCR AS CONC_DESCR
    	  , MINVE01.ALMACEN
    	  , CLIE01.CLAVE
    	  , CLIE01.NOMBRE
    	  , MINVE01.FECHA_DOCU
    	  , MINVE01.CANT
    	  , MINVE01.COSTO
    	  , MINVE01.PRECIO
    	  , PAR_FACTF01.TIP_CAM
    	  , IIF(MINVE01.CVE_CPTO < 50, MINVE01.CANT * -1, MINVE01.CANT) AS CANTIDAD
    	  , IIF(MINVE01.CVE_CPTO < 50, MINVE01.CANT * -1, MINVE01.CANT) * MINVE01.COSTO AS COSTOTOTAL
    	  , IIF(MINVE01.CVE_CPTO < 50, MINVE01.CANT * -1, MINVE01.CANT) * MINVE01.PRECIO AS PRECIOTOTAL
    	  , ((IIF(MINVE01.CVE_CPTO < 50, MINVE01.CANT * -1, MINVE01.CANT) * MINVE01.PRECIO) -- precio total
    	   - (IIF(MINVE01.CVE_CPTO < 50, MINVE01.CANT * -1, MINVE01.CANT) * MINVE01.COSTO)) -- costo total
    			AS UTILIDAD
     FROM PAR_FACTF01
    		   INNER JOIN INVE01  ON PAR_FACTF01.CVE_ART = INVE01.CVE_ART
    		   INNER JOIN MINVE01 ON PAR_FACTF01.CVE_DOC = MINVE01.REFER AND INVE01.CVE_ART = MINVE01.CVE_ART
    		   INNER JOIN CONM01  ON CONM01.CVE_CPTO = MINVE01.CVE_CPTO
    		   INNER JOIN CLIE01  ON MINVE01.CLAVE_CLPV = CLIE01.CLAVE 
     WHERE	MINVE01.CVE_CPTO In(2, 4, 51, 56);

    Pero de ella es difícil extraer conclusiones.

    Pega un ejemplo con los resultados que te da duplicados, y los valores de origen de las tablas.

    miércoles, 26 de agosto de 2020 4:08