como extraer datos duplicados una sola vez..

949 views
Skip to first unread message

magdalena concepcion cañete fretes

unread,
Jan 5, 2011, 9:24:09 PM1/5/11
to Comunidad de Visual Foxpro en Español
hola amigosss..........tengo un inconventiente que no he podido
solucionar.....tengo un select donde selecciono todos los registros de
mi detalle venta para una reposicion, que pasa, me trae muchos
productos repetidos, lo que quiero es que solo me visualice una vez
sumados las cantidades vendidas dentro de los cinco dias antes de la
fecha actual..ya utilice el distinct(), count(), having count(), pero
igual me sigue trayendo datos repetidos...mi select es la sgte.: desde
ya muchas gracias por su atencion...

sql1 = " select
d.producto_prod_cod ,p.prod_cod,p.prod_descripcion,p.prod_precio,"+;
" s.saldo_stock,p.prod_minimo,p.prod_maximo "+;
",d.prod_cant,c.venta_fecha as total from detalle_venta d,producto
p,maestro_stock s,cabecera_venta c "+;
" where c.venta_cod = d.cabecera_venta_venta_cod and p.prod_cod =
p.prod_cod "+;
" and p.prod_cod = d.producto_prod_cod and p.prod_cod =
s.producto_prod_cod "+;
" and date(venta_fecha) > (date(now()) - 15) and date(venta_fecha) <
date(now()) "+;
" group by
d.producto_prod_cod,p.prod_descripcion,p.prod_precio,s.saldo_stock,p.prod_minimo,p.prod_maximo,
"+;
" d.prod_cant,c.venta_fecha,p.prod_cod "

gracias magda>)

mundo visual foxpro

unread,
Jan 6, 2011, 5:59:10 AM1/6/11
to Comunidad de Visual Foxpro en Español
HOla, debes realizar un SUM(campoasumar) en el select.

Suerte !!

Mario A. Becerra
A. de Sistemas

On 5 ene, 23:24, magdalena concepcion cañete fretes
> d.producto_prod_cod,p.prod_descripcion,p.prod_precio,s.saldo_stock,p.prod_m­inimo,p.prod_maximo,

magdalena concepcion cañete fretes

unread,
Jan 6, 2011, 8:17:30 AM1/6/11
to Comunidad de Visual Foxpro en Español
ya lo tengo en mi select el sum() pero igual me sigue trayendo datos
duplicados..
graciass Mario

On 6 ene, 11:59, mundo visual foxpro <marioabece...@hotmail.com>
wrote:

lm...@cclf.com.pe

unread,
Jan 6, 2011, 8:27:36 AM1/6/11
to Comunidad de Visual Foxpro en Español
No puede ser, el group by agrupa a todos los campos similares, el sum no
agrupa, no creo que tengas datos duplicados algun campo debe de ser
diferente por lo que lo discrinima, a la vista ahi veo que tienes campos que
no pueden ser unicos, descripcion por Ejm, precio, saldo, minimo,
maximo..etc

prueba solo con descripcio y sum y luego ve a�ソスadiendo los demas campos para
que lo compruebes, basta una peque�ソスa variacion en los campos para que se
disgrege un codigo en 2 registros.

Luis

-----Mensaje original-----
From: magdalena concepcion ca�ソスete fretes
Sent: Thursday, January 06, 2011 8:17 AM
To: Comunidad de Visual Foxpro en Espa�ソスol
Subject: [vfp] Re: como extraer datos duplicados una sola vez..

ya lo tengo en mi select el sum() pero igual me sigue trayendo datos
duplicados..
graciass Mario

On 6 ene, 11:59, mundo visual foxpro <marioabece...@hotmail.com>
wrote:
> HOla, debes realizar un SUM(campoasumar) en el select.
>
> Suerte !!
>
> Mario A. Becerra
> A. de Sistemas
>

> On 5 ene, 23:24, magdalena concepcion ca�ソスete fretes

> > �ソスinimo,p.prod_maximo,

magdalena concepcion cañete fretes

unread,
Jan 6, 2011, 8:34:00 AM1/6/11
to Comunidad de Visual Foxpro en Español
Hola Luis..
voy a probar sacando algunos campos, este select es de mi detalle
venta para un reporte de reposicion.....tengo datos duplicados de
fechas diferentes pero de diferentes codigos.. no se si sea eso el
problema...

On 6 ene, 14:27, <lm...@cclf.com.pe> wrote:
> No puede ser, el group by agrupa a todos los campos similares, el sum no
> agrupa, no creo que tengas datos duplicados algun campo debe de ser
> diferente por lo que lo discrinima, a la vista ahi veo que tienes campos que
> no pueden ser unicos, descripcion por Ejm, precio, saldo, minimo,
> maximo..etc
>
> prueba solo con descripcio y sum y luego ve a adiendo los demas campos para
> que lo compruebes, basta una peque a variacion en los campos para que se
> disgrege un codigo en 2 registros.
>
> Luis
>
> -----Mensaje original-----
> From: magdalena concepcion ca ete fretes
> Sent: Thursday, January 06, 2011 8:17 AM
> To: Comunidad de Visual Foxpro en Espa ol
> Subject: [vfp] Re: como extraer datos duplicados una sola vez..
>
> ya lo tengo en mi select el sum() pero igual me sigue trayendo datos
> duplicados..
> graciass Mario
>
> On 6 ene, 11:59, mundo visual foxpro <marioabece...@hotmail.com>
> wrote:
>
>
>
>
>
>
>
> > HOla, debes realizar un SUM(campoasumar) en el select.
>
> > Suerte !!
>
> > Mario A. Becerra
> > A. de Sistemas
>
> > On 5 ene, 23:24, magdalena concepcion ca ete fretes
> > >   inimo,p.prod_maximo,

lm...@cclf.com.pe

unread,
Jan 6, 2011, 8:47:13 AM1/6/11
to Comunidad de Visual Foxpro en Español
Ahi esta el problema...

-----Mensaje original-----
From: magdalena concepcion ca�ete fretes

Sent: Thursday, January 06, 2011 8:34 AM

Jairo Miranda

unread,
Jan 6, 2011, 9:22:46 AM1/6/11
to publice...@googlegroups.com
Truco básico pero bastante útil.

En este caso determinados los registros duplicados por un campo especifico

Select Kardex From Kardex12 Group By Kardex Having Count(kardex)> 1


Select Campo From Tabla Group By Campo Having Count(Campo)> 1


En este caso determinados los registros duplicados por todo el registro


Select Campo1 + Campo2 + Campo3 + Campo4 As X From Tabla;
Group By X;
Having Count(Campo1+Campo2+Campo3+Campo4) > 1


Espero te sirva, perdona la demora

Jairo
-----Mensaje original-----
De: publice...@googlegroups.com
[mailto:publice...@googlegroups.com] En nombre de magdalena concepcion
cañete fretes
Enviado el: Miércoles, 05 de Enero de 2011 21:24
Para: Comunidad de Visual Foxpro en Español
Asunto: [vfp] como extraer datos duplicados una sola vez..

magdalena concepcion cañete fretes

unread,
Jan 6, 2011, 10:04:21 AM1/6/11
to Comunidad de Visual Foxpro en Español
Gracias Luis por tu aporte en serio....

alexabc

unread,
Oct 12, 2012, 7:05:18 PM10/12/12
to publice...@googlegroups.com
Estimado Jairo Miranda me sirvio lo que en tu post pusistes te lo agradesco, pero tengo un problemia como le hariamos con los registro que se duplican hasta tres o mas veces y dejar solo uno activo

de antemano milgracias por tu aporte, saludes de Nicaragua......

Luis Maria Guayan

unread,
Oct 12, 2012, 8:55:38 PM10/12/12
to publice...@googlegroups.com
Con estos SELECTs te retornan los repetidos, solo debes cambiar la sentencia SELECT por una DELETE con la misma condición


-- Buscar registros repetidos --

http://www.portalfox.com/article.php?sid=2098


Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________

--
 
 
 

Marco Plaza

unread,
Oct 13, 2012, 12:18:47 AM10/13/12
to publice...@googlegroups.com

Hola, necesitas totalizar las ventas de los 15 dias usando una subconsulta:

select ;
p.prod_cod,p.prod_descripcion,p.prod_precio,p.prod_minimo,p.prod_maximo,;
s.saldo_stock, ;
tvU.tVentas ;
from ;
producto p ;
join maestro_stock s on p.prod_cod = s.producto_prod_cod ;
join ;
( select producto_prod_cod,sum(prod_cant) as tVentas ;
from detalle_venta ;
join cabecera_venta c on cabecera_venta_venta_cod = c.venta_cod ;
where date(venta_fecha) > (date(now()) - 15) and date(venta_fecha) < date(now()) ;
group by 1 ) as tvU ;
on p.prod_cod = tvU.producto_prod_cod


Marco

narcizo norzagaray

unread,
Oct 13, 2012, 4:20:35 AM10/13/12
to publice...@googlegroups.com
luis maria , sigues apantallandome ( impresionandome ), saludos www.facebook.com/NzySoft  saludos


--
 
 
 



--
Narcizo Norzagaray S.
Desarrollo De Sistemas Computacionales.
www.facebook.com/nzysoft
Cel 622 118 1324
Nextel 129 9426


Message has been deleted

MALKASOFT ADPI: http://www.developervfp.blogspot.com/

unread,
Oct 13, 2012, 1:04:10 PM10/13/12
to publice...@googlegroups.com
Hola me imagino que ya has solucionado el problema que tenias gracias al aporte de todos, pero aquí te dejo una alternativa sencilla para que lo puedas usar en cualquier otro reporte que necesitas y si tienes alguna duda no dudes en consultarme.

select rvt.producto_prod_cod,p.prod_cod,p.prod_descripcion,p.prod_precio, 
 s.saldo_stock,p.prod_minimo,p.prod_maximo, rvt.TotalCant 
From producto p INNER JOIN 
(Select d.producto_prod_cod,sum(d.prod_cant) TotalCant
From detalle_venta d INNER JOIN cabecera_venta ON (relacion entre detalle_venta y Cabecera_venta) 
Where venta_fecha between (date(now()) - 15) and date(now())) rvt 
ON rvt.producto_prod_cod = p.prod_cod
INNER JOIN maestro_stock s INNER JOIN p.prod_cod=s.producto_prod_cod


NOTA rvt: se crea a través de una select son las ventas que necesitas y luego lo uno con los datos básicos de productos y del kardex  que necesitas para tu reporte, seria una de las posibles soluciones a tu problema.  


saludos

Pd.: Descargate mi grilla que tiene multiples funciones como filtrar, multiseleccion, búsqueda, etc del siguiente link http://www.developervfp.blogspot.com/p/gridlibre-v35.html. Ahora también puedes bajarte mi ultima herramienta Busqueda Incremental con un TEXTBOX http://developervfp.blogspot.mx/p/busqueda-incremental-con-un-textbox.html  las herramientas viene con código fuente, ojo no hacer mal uso por favor. 


Saludos; 


Ing. Russvell Jesus Soto Gamarra 
San Juan del Rio - Queretaro - Mexico 
Nextel.: 52*133750*16
rycjesusrj @ hotmail.com 

mpulla

unread,
Oct 13, 2012, 9:39:39 PM10/13/12
to publice...@googlegroups.com
Hola Magdalena.

Este filtro en tu Select esta por demás and p.prod_cod = p.prod_cod 

Me parece que tu problema de duplicados esta en el campo c.venta_fecha
Recuperas el campo d.producto_prod_cod y p.prod_cod que por la unión que haces son los mismos, suprime uno
No conozco MySql (disculpas se me equivoco) pero me parece que convertir date(venta_fecha) esta por demás ya haces (date(now()) - 15) presumo te devuelve una fecha
Evita hacer este tipo de conversiones date(venta_fecha) ya que estas dando más carga al servidor..!

Prueba este Sql

select p.prod_cod, p.prod_descripcion, p.prod_precio, s.saldo_stock,
       p.prod_minimo, p.prod_maximo, Sum(d.prod_cant) As total
from cabecera_venta c Inner Join detalle_venta d On c.venta_cod = d.cabecera_venta_venta_cod
     Inner Join producto p On d.producto_prod_cod = p.prod_cod
     Inner Join maestro_stock s On p.prod_cod = s.producto_prod_cod
 where venta_fecha > (date(now()) - 15) and venta_fecha < date(now())
   group by p.prod_cod, p.prod_descripcion, p.prod_precio, s.saldo_stock,
            p.prod_minimo, p.prod_maximo

Saludos.
Mauricio
Reply all
Reply to author
Forward
0 new messages