como visualizar registros repetidos y tambien los no repetidos

4,723 views
Skip to first unread message

magdalena concepcion cañete fretes

unread,
Oct 4, 2010, 1:54:00 PM10/4/10
to Comunidad de Visual Foxpro en Español
hola amigos...tengo un problema estoy haciendo un select donde traigo
todos los detalles de mi venta y en una venta tengo repetido el
mismo codigo de producto y solo me visualiza una vez,como puedo
visualizar todos los registros ya sea repetidos mas de una vez en mi
informe....

Moises Daniel Vilchez Tello

unread,
Oct 4, 2010, 2:13:50 PM10/4/10
to publice...@googlegroups.com
saludos, debes enviar la extructura de tus tablas ventas y detalle, para poder apoyarte con el select


--
Moises Daniel Vilchez Tello
Chiclayo - Lambayeque - Peru

extremo

unread,
Oct 4, 2010, 2:46:21 PM10/4/10
to Comunidad de Visual Foxpro en Español
haz lo siguiente:

select count(codigo_producto) as veces_repetidos ,codigo_producto from
ventas
where mis _condiciones para ver las ventas
group by codigo_producto into cursor _tmpRepetidos

donde el campo veces_repetidos te va dar cuantas veces esta repetido
el producto, obviament si da 1 es porque no esta repetido

Bendiciones

Jorge Montúfar

unread,
Oct 4, 2010, 2:50:58 PM10/4/10
to publice...@googlegroups.com
este es un ejemplo tomado del portalfox, espero que te sirva


Enviado por Luis María Guayán en Jueves, 30 Marzo, 2006
¿Quien no tuvo la tarea de buscar registros repetidos en una tabla de
Visual FoxPro?...

Una forma de saber si tenemos registros repetidos en nuestras tablas
es utilizar una sentencia SELECT con las cláusulas GROUP BY y HAVING
como la siguiente:


OPEN DATABASE (HOME(2) + "Northwind\Northwind")
SELECT TerritoryDescription, ;
COUNT(*) AS Repetido ;
FROM Territories ;
GROUP BY TerritoryDescription ;
HAVING Repetido > 1

El resultado de esta consulta nos muestra si existen registros
repetidos y la cantidad de veces que se repiten.

Pero hay veces que necesitamos saber exactamente que registros están
repetidos, para ello podemos utilizar algunas de las siguientes
sentencias SELECT:

1)

OPEN DATABASE (HOME(2) + "Northwind\Northwind")
SELECT * ;
FROM Territories ;
WHERE TerritoryDescription IN ;
(SELECT TerritoryDescription ;
FROM Territories ;
GROUP BY TerritoryDescription ;
HAVING COUNT(*) > 1)
2)

OPEN DATABASE (HOME(2) + "Northwind\Northwind")
SELECT * ;
FROM Territories T1;
WHERE EXISTS ;
(SELECT * ;
FROM Territories T2 ;
WHERE T1.TerritoryDescription = T2.TerritoryDescription ;
GROUP BY T2.TerritoryDescription ;
HAVING COUNT(*) > 1)
Nota: Las pruebas estan realizadas con la tabla "Territories" de la
base de datos "Northwind" que viene en los ejemplos de VFP8 y
superior.

El 04/10/10, extremo <protech...@gmail.com> escribió:

magdalena concepcion cañete fretes

unread,
Oct 4, 2010, 5:12:14 PM10/4/10
to Comunidad de Visual Foxpro en Español
hola amigos...
gracias por sus respuestasssssss estoy muy agradecida pero hice este
select donde aparecen todos los registros exintentes en mi tabla
detalle venta...
select
d.producto_prod_cod,p.prod_descripcion,d.prod_precio,d.prod_cant as
cantiven,(d.prod_cant*p.prod_precio) as montoventa,
date_part('month',c.venta_fecha) as
mes ,date_part('year',c.venta_fecha) as
anho,c.venta_fecha,c.cliente_clie_cod,
cl.clie_nom,c.estado,max(cc.compra_fecha) as
fechacompra,dd.prod_costo,dd.prod_cant as canticom,
(dd.prod_costo*dd.prod_cant) as montocompra
from detalle_venta d
inner join producto p on d.producto_prod_cod = p.prod_cod and
p.prod_cod = d.producto_prod_cod
inner join cabecera_venta c on c.estado = 'ACTIVO' and
(c.cliente_clie_cod >= 1 and c.cliente_clie_cod <= 90)
and date_part('month',venta_fecha)>= 7 and
date_part('month',venta_fecha)<= 12
and date_part('year',c.venta_fecha) = 2010 and
d.cabecera_venta_venta_cod = c.venta_cod and c.venta_cod =
d.cabecera_venta_venta_cod
inner join cliente cl on c.cliente_clie_cod = cl.clie_cod and
cl.clie_cod = c.cliente_clie_cod
LEFT OUTER JOIN cabecera_compras cc on cc.estado = 'ACTIVO' and
cc.compra_fecha <= c.venta_fecha
inner join detalle_compras dd on dd.producto_prod_cod = p.prod_cod and
p.prod_cod = dd.producto_prod_cod
where d.prod_cant > 0 and dd.prod_cant > 0
group by
d.producto_prod_cod,p.prod_descripcion,d.prod_precio,d.prod_cant,d.prod_precio,p.prod_precio,
date_part('month',c.venta_fecha) ,date_part('year',c.venta_fecha),c.venta_fecha,c.cliente_clie_cod,
cl.clie_nom,c.estado,cc.compra_fecha,dd.prod_costo,dd.prod_cant,c.venta_cod
order by c.venta_cod


esta re largo pero uni como cinco tablas, esto es para sacar la
utilidad de cada producto vendido a tal cliente desde hasta el cliente
que se desea y por primer trimestre o segundo del año que se
desea....ahora mi problema esta en el informe como hago para que me
salga todos los productos correspondientes a tal cliente...de tal
venta

Antonio.xt

unread,
Oct 5, 2010, 9:56:28 AM10/5/10
to Comunidad de Visual Foxpro en Español

Hola Magdalena, si esta algo largo el SELECT, estas usando varias
tablas, no crees que mejor podrias separarlo, primero obtener los
datos de las ventas y luego los de las compras y luego juntarlos, tal
vez asi se te simplifique un poco esta consulta; ademas, tengo dudas
si es correcto lo que pones en la linea donde dice:

inner join cabecera_venta c on c.estado = 'ACTIVO' and
(c.cliente_clie_cod >= 1 and c.cliente_clie_cod <= 90), etc, etc.

Creo que el JOIN es para crear relaciones entre tablas y tu estas
poniendo condiciones que deberian estar en la clusula WHERE.

Saludos !!

Charles Moreno
Monterrey, Mexico


On 4 oct, 16:12, magdalena concepcion cañete fretes
> d.producto_prod_cod,p.prod_descripcion,d.prod_precio,d.prod_cant,d.prod_pre­cio,p.prod_precio,

ricardo peña

unread,
Oct 4, 2010, 7:00:10 PM10/4/10
to publice...@googlegroups.com
Por casualidad no tienes una función de agregación ( sum , avg , etc )
en el select que a su vez tiene un group by artículo ?
 
Ricardo Luis Peña
Analista de Sistemas
BA - Argentina
 
> Date: Mon, 4 Oct 2010 10:54:00 -0700
> Subject: [vfp] como visualizar registros repetidos y tambien los no repetidos
> From: pich...@hotmail.com
> To: publice...@googlegroups.com

Armando Rodríguez

unread,
Oct 4, 2010, 2:00:06 PM10/4/10
to publice...@googlegroups.com
No uses la clausula group by en el campo del código del producto.

-----Mensaje original-----
De: publice...@googlegroups.com
[mailto:publice...@googlegroups.com] En nombre de magdalena concepcion
cañete fretes
Enviado el: Lunes, 04 de Octubre de 2010 12:54 p.m.
Para: Comunidad de Visual Foxpro en Español
Asunto: [vfp] como visualizar registros repetidos y tambien los no repetidos

Roberto Matarrita

unread,
Oct 7, 2010, 5:43:37 PM10/7/10
to publice...@googlegroups.com
SELECT factura, cod_articulo
FROM order_details
GROUP BY factura
HAVING count(cod_articulo) > 1
 
 
Prueba con el having.
 
Roberto
 
Costa Rica.


 
2010/10/4 ricardo peña <rl...@hotmail.com>

Maggi Fretes

unread,
Oct 5, 2010, 11:16:44 AM10/5/10
to publice...@googlegroups.com
Hola Antonio, gracias por tu comentario, si tambien funciona la condicion en los join...me trae los datos que necesito....Sonrisa
Reply all
Reply to author
Forward
0 new messages