Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   como contar los registros repetidos en una tabla (https://www.clubdelphi.com/foros/showthread.php?t=83282)

jltf2308 30-05-2013 22:16:59

como contar los registros repetidos en una tabla
 
tengo una tabla que registra las ventas hechas en un supermercado, pero en vez de almacenar la cantidad total de productos iguales comprados en una misma venta me los almacena 1 a 1... necesito sumar esos registros para asi tener la cantidad total vendida de un producto en especifico en una misma venta

Casimiro Notevi 30-05-2013 22:51:14

¿Qué base de datos, qué tablas y qué campos?

jltf2308 30-05-2013 23:07:33

es dbsys, maneja lenguaje sql, la tabla guarda es la linea que aparece en la factura, y el campo es cantidad que siempre va ser 1, pero el campo autoincrement cambia ya que va guardando los registros 1 a 1, y el campo operacion y documentos son iguales, es decir

autoincrement cantidad documento operacion
1 1 5 1
2 1 5 1
3 1 5 1
4 1 5 1

radenf 30-05-2013 23:55:22

Estimado jltf2308 :

Si te he entendido bien puedes utilizar este código (que yo uso con Access) para contar los repetidos:

Código Delphi [-]
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.Sql.text:='select DISTINCT(TUCAMPO),Count(TUCAMPO) as NUMERO from TuTabla group by TUCAMPO' ;
ADOQuery1.Open;

Ojalá te sirva en dbsys.
Salu2

jltf2308 30-05-2013 23:56:34

quien viene siendo campo? el que quiero contar cierto?

radenf 31-05-2013 00:07:25

Cita:

Empezado por jltf2308 (Mensaje 461540)
quien viene siendo campo? el que quiero contar cierto?

Efectivamente.
Es el campo de tu BD que se repite.

jltf2308 31-05-2013 00:08:36

ok hago pruebas y te aviso el resultado, gracias por atender mis dudas

ecfisa 31-05-2013 15:18:48

Hola jltf2308.

A mi tampoco me quedó totalmente clara la consulta, pero según interpreto de tu comentario:
Cita:

Empezado por jltf2308 (Mensaje 461532)
necesito sumar esos registros para asi tener la cantidad total vendida de un producto en especifico en una misma venta

Otra opción sería:
Código SQL [-]
SELECT SUM(CANTIDAD) AS TOTAL_VENDIDO
FROM VENTAS
WHERE NRO_VTA = :P_NRO_VTA AND COD_PROD = :P_COD_PROD

Saludos. :)

mamcx 31-05-2013 16:49:48

Deberias hacer un curso de SQL. Eso es una habilidad elemental.

jltf2308 31-05-2013 23:17:31

Cita:

Empezado por mamcx (Mensaje 461581)
Deberias hacer un curso de SQL. Eso es una habilidad elemental.

Cuanto quisiera hacer un curso no solo de SQL sino de POO, pero estudio Ingeniería, y Trabajo para pagarme la carrera... no me da el tiempo y mucho menos me alcanza el dinero para eso, necesariamente necesito mas tiempo en la web (del cual carezco) para aprender mas... estos foros son de ayuda no pretendo que me hagan el trabajo... trato de investigar primero y evito preguntar, si te fijas tengo muy poca actividad... De todas formas gracias por la recomendación un abrazo desde venezuela

jltf2308 31-05-2013 23:21:56

Cita:

Empezado por ecfisa (Mensaje 461572)
Hola jltf2308.

A mi tampoco me quedó totalmente clara la consulta, pero según interpreto de tu comentario:

Otra opción sería:
Código SQL [-]
SELECT SUM(CANTIDAD) AS TOTAL_VENDIDO
FROM VENTAS
WHERE NRO_VTA = :P_NRO_VTA AND COD_PROD = :P_COD_PROD

Saludos. :)

Ecfisa, esta es la segunda respuesta que me das en una duda que tengo, la anterior aun no la he puesto en practica xq me toco parar con le proyecto, pero gracias por tomarte el tiempo.
Aclarando una duda, se supone que el campo cantidad es el que me guarda cuantos productos iguales me lleve en una compra, es decir cuantos pollo, cuantas harinas compre en una misma factura... para efectos de sistema no lo hace, sino que guarda en la tabla el registro repetido tantas veces se halla comprado.
Por cuestiones ajenas a mi voluntad (prefiero desarrollar a hacer una reingenieria) y principalmente por falta de tiempo he de hacer este conteo.
graciaspor dar tu aporte

ecfisa 31-05-2013 23:57:06

Hola jltf2308.
Cita:

Empezado por jltf2308 (Mensaje 461610)
Aclarando una duda, se supone que el campo cantidad es el que me guarda cuantos productos iguales me lleve en una compra, es decir cuantos pollo, cuantas harinas compre en una misma factura... para efectos de sistema no lo hace, sino que guarda en la tabla el registro repetido tantas veces se halla comprado.

Entonces basta con reemplazar la función de la selección en el código anterior:
Código SQL [-]
SELECT COUNT(COD_PROD) AS TOTAL
FROM VENTAS
WHERE NRO_FAC = :P_NRO_FAC AND COD_PROD = :P_COD_PROD
Donde NRO_FAC sería el número de factura y COD_PROD el código del producto a consultar.

Saludos. :)

mamcx 01-06-2013 00:44:12

Cita:

Empezado por jltf2308 (Mensaje 461609)
Cuanto quisiera hacer un curso no solo de SQL sino de POO, pero estudio Ingeniería, y Trabajo para pagarme la carrera... no me da el tiempo y mucho menos me alcanza el dinero para eso

Lo largo y complejo del curso es algo que se puede decidir en estos tiempos ;) -quizas el uso del termino "curso" dio a entender "universidad"-. Hay muchos tutoriales y recursos (gratis) para aprender, algunos muy cortos.

Si solo estas solucionando un problema de una vez, esta bien. Pero si tienes que usar SQL con cierta frecuencia es mas "rentable" darse una repasada rapida de que trata, porque sino gastaras mas tiempo buscando cada paso de la solucion cuando en general la mayoria del tiempo son tareas elementales.

Es por eso que hay un dicho que dice "Si vas a cortar leña por 6 horas, afila el hacha por 4" y "Mide 2 veces, corta una vez".


La franja horaria es GMT +2. Ahora son las 21:11:56.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi