martes, 21 de mayo de 2013

Eliminar registros duplicados en mysql

Amigos, aqui sigo con nuevas entradas.

Para eliminar registros duplicados se hace con la siguiente instrucción.


CREATE TABLE ventasdet2 AS SELECT DISTINCT * FROM ventasdet;

Y pasamos a explicarlo.

CREATE TABLE ventasdet2 AS
  Crea la tabla "ventasdet2" y no pasamos ninguna estructura de creación pues lo tomaremos de la siguiente instrucción con todo y datos SELECT DISTINCT * FROM ventasdet, aquí la consulta solo listará los registros diferentes la clausula DISTINCT hace la magia.

Espero sea de ayuda

saludos


Como generar una columna SALDO al vuelo desde mysql

Pues continuamos con otras sentencias.

Tenemos la necesidad de generar una sentencia que me liste una tabla de cargos, abonos y su respectiva columna de saldo al vuelo.

Tenemos la siguiente sentencia.

SET @saldo_anterior=0;
SELECT cliente, cargo, abono, @saldo_anterior:=@saldo_anterior+cargo-abono AS saldo FROM pagoclie WHERE cliente = "01";

Para eso requerimos de generar una variable de usuario creada en la conexión activa llamada saldo_anterior, para eso utilizamos la clausula SET, nótese que debe llevar el signo de arroba (@) antes del nombre de la variable. Vale la pena comentar que algunos clientes de mysql no aceptan múltiple sentencias, pero si se genera separadamente podría funcionar.

La segunda sentencia nos lista el nombre del cliente, cargos, abonos y la variable antes creada y se hace la asignación de los saldos fila por fila, dejando ese valor en la columna saldo.

Todo esto de la tabla pagoclie y filtrando por cliente "01"

El resultados es este:

cliente    cargo    abono    saldo
                                  
01                        10.00               0.00               10.00
01                          0.00             10.00                 0.00
01                        10.00               0.00               10.00
01                          0.00             10.00                 0.00

Esperemos sea de su ayuda

Saludos

Como contar registros duplicados en mysql

Bueno, antes que nada, comentar que no he escrito por cuestiones de trabajo, pero aquí el primero de muchos este año.

Aquí compartimos un código, aunque pequeño es muy util cuando se quieren contar registros duplicados.
select email, count(email)
from usuario
group by email
having count(email)>1


Explicamos la sentencia.
Listamos la columna "email" y el conteo de las filas correspondientes.
Utilizamos la tabla usuario
Agrupamos por la columna email
Utilizamos la clausula Having para retringir las filas mostradas, solo se mostraran las que sean mayor a 1

Esperemos sea de utilidad.

Saludos