Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    32

    query duplicati database

    Ragazzi io ho una parte di programma
    che mi acquisisce in automatico tutti i dati di una tabella xls e me li mette in un database

    l'unica cosa è ke ho notato che ci sono alcuni clienti doppi!
    quindi come posso fare una query ke mi controlla il contenuto del database e nel caso in cui un cliente sia presente 2 o piu volte cancella gli altri per farne rimanere uno?

    Sono facili da identificare perkè i doppi si riconoscono o dal Codice fiscale o dal codice cliente ke sono univoci quindi se ne sbucano 2 uguali vuol dire ke è un doppione

    Io è qualke giorno ke penso a come impostare la query ma non riesco
    sapete darmi una mano?

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    codice:
    select codice_cliente
    from tabella
    group by codice_cliente
    having count(codice_cliente) > 1
    Una volta che hai i record univoci puoi ad esempio esportarli in una nuova tabella.

    Sposto in database.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    32
    quella di creare una nuova tabella una volta ke hai trovato i record univoci l'avevo già trovata
    ma io volevo sapere se era possibile fare direttamente l'operazione sul database

    magari con una query complessa
    for if
    non so

    prendi codice_cliente1 lo confronti con tutti quelli del database se è uguale a codice_clienteX cancella la riga X altrimenti vai avanti e prova con il secondo e così via

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Spiegati meglio.
    I record duplicati hanno uguali tutti i campi?
    In caso contrario in base a quale criterio decidi cosa mantenere e cosa eliminare?

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    32
    no allora un cliente è definito duplicato quando hanno codice_cliente e codice fiscale uguali

    per me è indifferente tenere uno o l'altro l'importante è ke ne rimanga 1

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    codice:
    delete t1 from tabella as t1, tabella as t2 where t1.codice_cliente = t2.codice_cliente and t1.codice_fiscale = t2.codice_fiscale and t1.id < t2.id
    Questa query per ogni occorrenza di duplicati cancellerà tutto tranne il record con id più recente.

    Per precauzione testa la query su una copia di backup che creerai così

    codice:
    create table tab_backup like tab_originale
    insert into tab_backup select * from tab_originale

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    32
    bravo era quello ke stavo per dirti
    perkè si può essere che abbiamo codice fiscale e codice cliente uguali
    ma sicuramente hanno indice diverso


    grandissimo! funziona ho fatto un test veloce e funziona!!!!!!
    grazie mille ora devo solo portarlo sul mio programmino php e sono a posto

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.