Realizo la consulta sobre DBFs con servidor ADS
Para entender la consulta explico las bases involucradas
A.BDSGC03 - base de Ventas
D.BDSGC04 - base de Detalles de Ventas se aplica en Sum()
B.BDSGC18 - base de Clientes
C.BDSGC33 - base de Ramos de Venta
consulta SQL
ADSExecuteSQLDirect( "SELECT A.FFEVTA01,A.FDOCINT1,A.FCABFA04,SUM(D.FDETFA06*D.FDETFA08) AS MontoVta,SUM(D.FDETFA06*D.FDETFA07) AS Costo," + ;
              "SUM(D.FDETFA11) AS Ganancia,(SUM(D.FDETFA06*D.FDETFA08)/SUM(D.FDETFA06*D.FDETFA07)-1)*100 AS Porc,SUM(D.FDETFA06) AS TotalKg," + ;
              "B.FIDCLI01,B.FRAMO01,C.FRAMO01,C.FRAMO02 "+ ;
           "FROM BDSGC03 AS A INNER JOIN BDSGC04 AS D ON A.FDOCINT1=D.FDOCINT1, BDSGC18 AS B, BDSGC33 AS C " + ;
           "WHERE A.FFEVTA01 BETWEEN '"+hDatos["Desde"]+"' AND '"+hDatos["Hasta"]+"' " + ;
              "AND A.FIDCLI01=B.FIDCLI01 AND D.FUNI01='KG' AND B.FRAMO01=C.FRAMO01 " + ;  // AND A.FIDCLI01=B.FIDCLI01
           "GROUP BY A.FFEVTA01,A.FDOCINT1,A.FCABFA04,A.FCABFA12,A.FCABFA14,A.FCABFA15,A.FCABFA18,A.FCABFA24,A.FCABFA31," + ;
               "B.FIDCLI01,B.FRAMO01,C.FRAMO01,C.FRAMO02 " + ;
           "HAVING FCABFA18 AND NOT FCABFA24 " + ;
           "ORDER BY C.FRAMO02,A.FFEVTA01,A.FCABFA04" )En WHERE se indica las fechas inicio-fin, la igualdad entre cod de cliente en Ventas - Cliente, FUNI01, que solo liste Kilos y la igualdad entre cod Ramos en Venta y Ramos
En HAVING que la Venta se haya facturado (FCABFA18) y que no este Anulada (FCABFA24)
El problema es que repite algunas lineas; pero... lo peor es que modificando fechas el resultado no es el mismo!
Entre 01/11 y 30/11 (repite al cliente Eduardo...)

Entre 15/11 y 30/11 (repite al cliente Catering, que esta antes de Eduardo, que ahora no repite)

Entre 18/11 y 20/11 (NO repite fila)

alguna idea del porque?, gracias
Chaco - Argentina
