none
Registros duplicados RRS feed

  • Pregunta

  • Hola, tengo un select hacia una tabla que tiene datos duplicados, el inconveniente es que no los puedo suprimir esos datos, pero necesitaria poder solo extraer esos datos que no esten duplicados ya que en otro proceso los inserto en una tabla donde la FK no me permite datos duplicados.

    actualmente tengo este select 

    SELECT Empresa, Sucursal, Cliente_Codigo, Cliente, Cliente_Tipo, Cliente_Categoria, FC_Cbte_Tipo, FC_Nro, FC_Cuota_Nro, FC, FC_Fecha_Emision, FC_Fecha_Inicial, FC_Vencimiento, FC_Dias_Vencimiento, FC_Forma_de_Pago_Codigo, FC_Forma_de_Pago, FC_Moneda, FC_TC, replace(cast(FC_Importe_Cbte as varchar(100)), ',', '.') FC_Importe_Cbte, replace(cast(FC_Importe_Cbte_Origen as varchar(100)), ',', '.') FC_Importe_Cbte_Origen, replace(cast(FC_Saldo_Cbte as varchar(100)), ',', '.') FC_Saldo_Cbte, replace(cast(FC_Saldo_Cbte_Nac as varchar(100)), ',', '.') FC_Saldo_Cbte_Nac from tmp_Cobro

    where fc_nro = 'A000300001091'


    puse el where para que puedan ver en la tabla una de las facturas que duplica la fecha de vencimiento, ya la trae asi de otra tabla, pero necesitaria en esta poder hacer ese filtro y que no duplique el campo FC_Vencimiento, como se ve para el mismo FC (numero de factura) deberia de ser la fecha de vencimiento una por 30 dias otra por 60 dias y la otra por 90, queria consultar si es posible filtrar esos datos debiendo la consulta devolver este dato correctamente

    20131013 30

    20131112 60

    20131212        90

    Eh suprimido varios campos en la imagen para que no sea tan grande, pero los demas campos los datos son identicos por cada registro.

    Muchas Gracias por la ayuda


    • Editado Insomnio1 jueves, 10 de octubre de 2013 2:30
    jueves, 10 de octubre de 2013 2:28

Respuestas

Todas las respuestas

  • Si quieres obtener registros agrupando las posibles duplicidades debes usar la cláusula GROUP BY :

    SELECT FIRST Campo AS PrimerDatoDeCampo FROM Tabla GROUP BY CampoQueAgrupas

    Te va a devolver el primer valor del Campo en los registros agrupados por CampoQueAgrupas (en este caso sería la fecha).

    Si quieres puedes obtener la suma de los valores del campo en los registros repetidos con:

    SELECT SUMCampo AS SumaDelCampo FROM Tabla GROUP BY CampoQueAgrupas


    Saludos, Javier J

    jueves, 10 de octubre de 2013 11:30
  • Hola.

    Puedes colocar "distinct" en tu select, pero eso casi nunca es buena idea. Debes determinar qué registros quieres tomar, te faltará algún filtro. ¿Cuál es la clave primaria de tu tabla?


    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.com
    Sígueme en twitter en http://twitter.com/qwalgrande

    domingo, 20 de octubre de 2013 10:01
    Moderador