query eliminazione campi duplicati in base ad un valore

Anonimo
2013-12-06T03:15:16+00:00

Salve a tutti come sempre chiedo il vostro indispensabile supporto.

Ho una tabella/query in cui ho una serie di campi tra cui:

-nome prodotto

-ean(codice a barre)

-prezzo

devo eliminare i duplicati nome prodotto lasciando il prodotto con il prezzo più basso

in seguito dal risultato ottenuto, devo eliminare i duplicati ean lasciando il prodotto con il prezzo più basso

chiaramente dutti quelli non duplicati devo visualizzarli.

Sempre in microsoft comunity avevo avuto un ottimo consiglio,ovvero l'utilizzo di raggruppamento in base ai campi su cui effettuare la ricerca di duplicati quindi prima nome prodotto e prezzo (rispettivamente nome prodotot raggruppamento e prezzo min)

e poi ean e prezzo (rispettivamente ean raggruppamento e prezzo min)

a quel punto avrei dovuto effettuare una selezione di corrispondenza diretta di tipo join di tipo1 con la tabella di orgine per trovare tutti i campi corrispondenti, un'altra query di ricerca campi non corrispondenti.

Unendole avrei dovuto ottenere il risultato sperato.

Il problema è che per ean non ci sono problemi ma con il campo nome prodotto riporta più valori quando faccio il join di corrispondenza.

Non posso inserire anche id perchè aumenta il numero di risultati.

quale altra soluzione devo utilizzare.

Grazie a tutti

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2013-12-10T08:28:47+00:00

Non esiste il problema perchè tu non richiami il Modulo ma una specifica Sub (o funzione) al suo interno con uno specifico nome.

Se ritieni risolto il tuo problema contrassegnalo come risposta, così agevoliamo il lavoro dei moderatori.

Ciao Mimmo

La risposta è stata utile?

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2013-12-06T19:51:37+00:00

Ciao Gianfranco,

un consiglio, fai una copia del file ACCDB e quindi effettua un compatta e ripristina, così facendo le dimensioni del file si riducono ad meno di 1/4.

la query è la seguente:

SELECT [RAGGR MANUFACURE REFERENCE].[Manufacturer Reference], [RAGGR MANUFACURE REFERENCE].[MinDiPrezzo Vendita], DFirst("ID","[PIX PRO ORIGINE]","[Manufacturer Reference] = '" & [Manufacturer Reference] & "' And val([Prezzo Vendita]) = " & Val([MinDiPrezzo Vendita])) AS Espr1

FROM [RAGGR MANUFACURE REFERENCE];

Il problema è che i tempi di esecuzione sono un po' lunghi.

Se nel tuo applicativo queste query devono essere eseguite spesso penso sia opportuno cambiare approccio ad es. con una routine (codice) VBA .

Fammi sapere

Mimmo

La risposta è stata utile?

0 commenti Nessun commento

38 risposte aggiuntive

Ordina per: Più recente
  1. Anonimo
    2013-12-10T14:45:52+00:00

    Forse dovresti partire dal risultato del codice Vba (raggruppamento per prodotto) e distinguere tra Ean validi e non.

    Quindi rieseguire il codice Vba riadattato per raggruppare non più sul prodotto ma su Ean per eliminarne i duplicati di questi.

    Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2013-12-10T14:24:30+00:00

    grazie Mimmo 57, come funziona posso spuntare ogni rispsota che mi dai o non si può fare?

    Non ritengo sia il caso :-)

    ---------------------------------------------------------------

    Quindi dopo avere eliminato i duplicati titolo   ... Cosa intendi per duplicati titolo ?

    Se assembli prodotti non duplicati e Ean validi non duplicati penso che generi nuovamente dei duplicati !!! ???

    Lo stesso se assembli prodotti non duplicati e Ean non validi !!!

    In sintesi mi sfugge l'obiettivo finale. :-)

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2013-12-10T13:50:01+00:00

    grazie Mimmo 57, come funziona posso spuntare ogni rispsota che mi dai o non si può fare?

    Scusami se approfitto, ma sto facendo una doppia analisi, prima per nome prodotto e poi per ean.

    Nel caso degli ean devo fare una distinzione tra

    -tutti quelli non nulli e validi (<>"0" And <>"000000000000" And <>"0000000000000" And Is Not Null And <>"" And <>"ohne" And Not Like "*+12" And not Like "*+13")

    -e quelli non validi ("0" Or "000000000000" Or "0000000000000" Or "" Or Is Null Or "" Or "ohne" Or Like "*+12" Or Like "*+13")

    Quindi dopo avere eliminao i duplicati titolo effettuo una sintesi con il tuo amatissimo codice anche per ean validi.

    Infine creo una tabella con nome prodotto non duplicati e ean validi non duplicati, e accodo una query con nome prodotto non duplicati e ean non validi(in questo caso non ho eliminato i duplicati di ean in quanto se il campo è nullo o .... li avrebbe uniti anche se sono due prodotti diversi)

    Invece di effettuare questi passaggi e quindi creaione di tabella e accodamento, per cui dovrei creare due pulsanti, esiste un modo per accodare a query o la creaione di questi passaggi in un unico passaggio?

    Grazie

    La risposta è stata utile?

    0 commenti Nessun commento