Doppioni su più campi

di il
7 risposte

Doppioni su più campi

Salve a tutti!

Questo è il mio primo post

Per il mio lavoro avrei bisogno di realizzare questo piccolo databasino che mi consenta di scovare dei doppioni.

La situazione è la seguente: abbiamo un codice cliente ed una PEC associata. Un semplice excel di due colonne, dunque. Il controllo da eseguire dovrebbe consentirmi di scovare i doppioni, ma le casistiche sono 3:

1) stesso CodCliente e stessa PEC -> ERRORE CERTO, doppione da eliminare;
2) stesso CodCliente ma PEC diversa-> ERRORE PROBABILE, è possibile che uno stesso cliente abbia più PEC, ma comunque è una situazione da monitorare;
3) stessa PEC ma CodCliente diverso -> ERRORE CERTO, una stessa PEC non può essere associata a due clienti differenti.

Come posso fare per estrapolare tutti questi casi con una query?

Grazie!

7 Risposte

  • Re: Doppioni su più campi

    Che ne dici di fare 3 query separate?
    Dopo che avrai "riparato" a doppioni incoerenti, eliminato a dovere, ti consiglio di creare un "Indice Multicampo Univoco" sulla coppia campi in modo da impedire l'input di coppie-valori duplicate.
  • Re: Doppioni su più campi

    Il problema è che facendo 3 query separate, andrei a creare dei doppioni. Mi spiego meglio:

    Con una query che mi pesca tutte le pec identiche, mi prenderà molte coppie stesso CodCliente stessaPEC. E ok, mi va bene.

    Impostando però una seconda query che mi pesca tutti i CodCliente ripetuti, mi prenderà molte coppie con stesso CodCliente e stessa PEC.

    Insomma molti dei risultati delle due query sarebbero gli stessi, e avrei bisogno di intervenire "manualmente" per cancellare questi doppioni.

    Chiedo scusa, ma non sono molto esperto
  • Re: Doppioni su più campi

    RobertoGsm ha scritto:


    Insomma molti dei risultati delle due query sarebbero gli stessi, e avrei bisogno di intervenire "manualmente" per cancellare questi doppioni.
    Non sono d'accordo.

    Ci sarebbero molte strade da intraprendere (tecniche o spartane), ma hai detto che non sei esperto. Comprendo la delicatezza del problema e anch'io quando non mi sento sicuro-sicuro-sicuro al 100% delle query, procedo a piccoli passi e anche manualmente. Quindi io, al posto tuo, farei così:
    1. Eseguo Query1 e stampo su un foglio
    2. Eseguo Query2 e stampo su un foglio
    3. Eseguo Query 3 e stampo su un foglio
    4. Riapro la tabella, vado a vedere i record che non vanno e elimino MANUALMENTE. Quindi depenno sul foglio di carta.
    5. Al termine del lavoro a mano, provo a rieseguire tutte e 3 le query e guardo che cosa mi dicono. Se ho fatto tutto per bene, al punto 4. mi aspetto di trovarle tutte vuote.
    6. Imposto qualche Indice Univoco in modo che il problema dei "doppioni" non si presenterà mai più.
  • Re: Doppioni su più campi

    Ti ringrazio!!!

    Vorrei chiederti solo una cosa: se imposto un campo chiave, non mi perdo alcuni casi in cui (GIUSTAMENTE) un cliente ha più PEC? E' plausibile che possa accadere...
  • Re: Doppioni su più campi

    Mi sfugge qualcosa.
    Come si chiama la tabella?
    Come si chiamano tutti i campi?
    La tabella non ha già una chiave primaria?

    Per un Cliente--->più PEC ti rispondo dopo aver chiarito quelle 3 domande.
  • Re: Doppioni su più campi

    1) La tabella si chiama:

    Ndg_Intest_Pec (perchè Ndg è il nome del codice cliente, intestazione e pec);

    2) I campi si chiamano: Ndg, Intestazione, Pec

    3) No perché in alcuni casi è opportuno che uno stesso Ndg abbia più Pec. Solo che in alcuni casi è giusto che sia così (pensa ad un'azienda con più Pec, una per ogni settore aziendale). In altri casi invece vengono associate erroneamente alcune Pec a Ndg errati. Quindi non posso impostare il campo chiave...
  • Re: Doppioni su più campi

    RobertoGsm ha scritto:


    1) La tabella si chiama:
    Ndg_Intest_Pec (perchè Ndg è il nome del codice cliente, intestazione e pec)
    2) I campi si chiamano: Ndg, Intestazione, Pec
    Un po' "ermetica" come tabella...ti spiego dopo.

    RobertoGsm ha scritto:


    3) No perché in alcuni casi è opportuno che uno stesso Ndg abbia più Pec. Solo che in alcuni casi è giusto che sia così (pensa ad un'azienda con più Pec, una per ogni settore aziendale). In altri casi invece vengono associate erroneamente alcune Pec a Ndg errati. Quindi non posso impostare il campo chiave...
    Generalmente si gestisce una tabella Clienti con campi tipicamente "anagrafici" quali:
    IDCliente o CodCliente o Ndg (come vuoi chiamarlo tu): io qui ci metterei la chiave primaria
    Cliente
    Indirizzo
    Città

    Un Cliente, in quanto tale "anagraficamente" va trattato UNIVOCAMENTE, quindi deve apparire una sola volta.

    Riguardo PEC...allargherei il discorso. Secondo una vecchia filosofia progettuale delle tabelle "anagrafiche", all'epoca bastavano sono Telefono, Cellulare, e-mail. Oggi la tecnologia si è evoluta così tanto che un Cliente può avere molti Cellulari, molte e-mail, molte PEC.
    Se vuoi seguire la filosofia antica aggiungi i campi PEC1, PEC2.
    Se vuoi rendere la cosa più elastica, vale la pena organizzare su più tabelle. quindi:

    Contatti
    IDContatto
    TipoContatto (predisponi anche una casella combinata che legge i valori da TipiContatti.TipoContatto...vedi dopo...)
    Contatto
    IDCliente (o Ndg)

    TipiContatti
    TipoContatto (qui scrivi una lista di valori tipo: Telefono, Cellulare, e-mail, PEC...)

    Relazioni:
    Clienti.Ndg uno-a-molti Contatti.Ndg
    TipiContatti.TipoContatto uno-a-molti Contatti.TipoContatto
Devi accedere o registrarti per scrivere nel forum
7 risposte