Aiuto per query access

di
Anonimizzato13264
il
7 risposte

Aiuto per query access

Salve a tutti. Sono nuovo di questo forum e sono autodidatta per access: provo, cerco chiedo riprovo guardo tutorial e leggo man mano discussioni di altri utenti sui problemi che non so risolvere e finora ho sempre trovato quello che cercavo motivo per cui non ho mai chiesto qualcosa per me con un messaggio personale.
Vengo alla richiesta di aiuto:

ho creato una tabella con
1° campo: cognome nome
2° campo: provincia A (collegato partendo da una tabella "provincia A" collegata con casella combinata, che presenta gli argomenti ProvinciaA/no)
3° campo: provincia B (ProvinciaB/no)
altri 100 campi simili ciascuno con una provincia.
Preciso che non ho utilizzato il campo si/no perchè non consente poi di eseguire delle query di unione e non si possono sommare etc etc un sacco di limitazioni...

Desidero ottenere una query di unione che mi dia due campi: uno contenente cognome nome, l'altro contenente tutte le informazioni presenti nei campi 2-100: ovvero i nomi delle province dove ciascun cognome nome lavora.

Ho utilizzato una query così fatta che ho trovato dopo lunghe ricerche su un forum:
SELECT [venezia CS] as [Tutte le province] from [T_fornitori_medici_sedi]
UNION ALL select [venezia Mestre] from [T_fornitori_medici_sedi]
ORDER BY [tutte le province];

questa query funziona nel senso che crea un unico campo "tutte le province" in cui sono inseriti i nomi delle province insieme ai "no" se una persona non lavora in quella provincia. tuttavia questa query mi rende solo tutte le province in cui i fornitori si recano.
Ho la necessità di aggiungere un ulteriore campo con i nomi dei fornitori rispettivamente per ciascuna provincia solo che ho fatto molteplici tentativi, devo trovare il comando giusto per inserire dentro questa query anche i rispettivi T_fornitori_medici_sedi.[fornitori].
Che istruzione mi suggerite di utilizzare?!?

Grazie mille a tutti coloro che si cimenteranno in una risposta!

7 Risposte

  • Re: Aiuto per query access

    marco77pad ha scritto:


    informazioni presenti nei campi 2-100: ovvero i nomi delle province
    Hai commesso un errore di normalizzazione. Non ha senso avere 98 campi che dicono tutti la stessa cosa. Devi avere una tabella Province relazionata con la tabella Anagrafica.
  • Re: Aiuto per query access

    Un cognomenome può lavorare in diverse province. Quindi mi occorre un campo per provincia. perchè altrimenti dovrei fare fino a 100 record per ogni CognomeNome. Ma la segretaria che inserirà i dati non posso farle fare 100 record per ogni contatto (ne avrò circa 10.000) solo per ragioni di sistema.
    Desidererei qualcuno che prima di dare un giudizio si chieda se ha capito bene il mio problema. Anche perchè prima di porre la domanda ho cercato nei forum delle alternative per non disturbare.
  • Re: Aiuto per query access

    Ciao, impostando correttamente le relazione del db molti a molti ottieni secondo me quello che ti serve in più normalizzi in database, non ha senso come ti dice OsvaldoLaviosa creare 100 campi con la stessa info.

    ciao.
  • Re: Aiuto per query access

    marco77pad ha scritto:


    Un cognomenome può lavorare in diverse province. Quindi mi occorre un campo per provincia. perchè altrimenti dovrei fare fino a 100 record per ogni CognomeNome.
    Non devi fare 100 record per ogni Persona.
    Ragioniamo secondo la logica normalizzata di Access. Una Provincia può avere molti Lavoratori. Un Lavoratore può avere molte sedi di Lavoro, cioè può stare in molte Provincie. Quindi si parte, per lo meno dal considerare 2 tabelle Anagrafica (o Lavoratori) e Provincie in relazione molti-a-molti (come ha già accennato Goku). La relazione molti-a-molti si esplicita attraverso una tabella di congiunzione con 2 relazioni uno-a-molti. Quindi, secondo me, tu dovresti avere le seguenti tabelle:

    Anagrafica
    IDPersona (contatore, chiave primaria)
    Nome
    Cognome
    ...altri eventuali campi anagrafici

    Provincie
    IDProvincia (contatore, chiave primaria)
    Provincia
    Regione

    Localizzazioni
    IDLocalizzazione (contatore, chiave primaria)
    IDPersona (numerico)
    IDProvincia (numerico)

    Relazioni:
    Anagrafica.IDPersona uno-a-molti con Localizzazioni.IDPersona
    Provincie.IDProvincia uno-a-molti con Localizzazioni.IDProvincia

    In base a questo scenario tabelle, si può pensare di costruire una maschera/sottomaschera Anagrafica/Localizzazioni. Per ogni Persona (ad es. Tizio), in basso andrai a compilare soltanto le Provincie di competenza di Tizio che suppongo ne avrà al massimo una decina...non so...ma certamente non 100.
  • Re: Aiuto per query access

    Goku ha scritto:


    ciao, impostando correttamente le relazione del db molti a molti ottieni secondo me quello che ti serve in più normalizzi in database, non ha senso come ti dice OsvaldoLaviosa creare 100 campi con la stessa info.
    ovviamente non essendo supportato il molti a molti, devi gestirne due uno a molti.
  • Re: Aiuto per query access

    Grazie Osvaldo, è stato davvero utile il tuo suggerimento, anche per altre relazioni tra tabelle. Ho provato a fare come dici. Ora posso avere un contatto con l'attribuzione di tutte le provincie di competenza. Tuttavia la domanda a cui rispondere, per cui sto strutturando il database è: ho una persona da andare ad assistere nella provincia di padova. Che fornitore invio? Ovvero tra tutti i fornitori chi si reca a padova? E non so raccapezzarmi in merito.... Grazie ancora
  • Re: Aiuto per query access

    Attenzione. Il discorso fin qui fatto non considerava affatto i Fornitori. Non so se la tabella Anagrafica si riferisse proprio a loro...il discorso prende un'altra piega e dovresti descrivere un po' più di tabelle, con tanto di campi...ma soprattutto devi darci il significato di ogni Tabella o Campo, altrimenti non riusciamo a seguire un discorso che a te sembra implicito. In sostanza:
    Di cosa parla il tuo database?
Devi accedere o registrarti per scrivere nel forum
7 risposte