Left join su tre tabelle

di il
6 risposte

Left join su tre tabelle

Buonasera,
ho creato una database che mi confronta i valori di due aziende diverse.
per lo stesso prodotto devo confrontare i prezzi.
premetto che le definizioni dei prodotti sono uguali per tutti e due i negozi.
i dati dei negozi li importo nelle tabelle tramite file in excel.
Può essere che un negozio abbia più prodotti di un'altro perciò è indispensabile usare un left join
esempio della query che viene:

NEGOZIOCOOP_______NEGOZIOSUPERAL
BROCCOLI 2 EURO___BROCCOLI 1,50 EURO
LATTE 1 EURO______LATTE 1,55 EURO
PANE 1,30 EURO_____________________

la select che mi era stata suggerita ( e che è molto funzionale) è questa:
SELECT negozio_coop.prodotto, negozio_coop.prezzo, negozio_superal.prodotto, negozio_superal.prezzo,
FROM coop LEFT JOIN superal ON negozio_coop.prodotto Like "*" & negozio_superal.prodotto & "*"


Adesso i negozi che devo controntare sono tre ( e pertanto anche le tabelle diventeranno tre) ma non so come modificare la query precedentemente descritta.

il risultato lo vorrei così:

NEGOZIOCOOP_______NEGOZIOSUPERAL_______NEGOZIOTOPDI
BROCCOLI 2 EURO___BROCCOLI 1,50 EURO______BROCCOLI 1,80 EURO
LATTE 1 EURO______LATTE 1,55 EURO_________LATTE 2,10 EURO
PANE 1,30 EURO_____________________________PANE 0,95

ho fatto diversi tentativi ma mi dà vari errori.
qualcuno mi sa suggerire qualche soluzione?
grazie anticipatamente.

6 Risposte

  • Re: Left join su tre tabelle

    Qualora effettui una fusione delle tre tabelle in una unica (ed identificando i dati provenienti da ciascuna) puoi impiegare una query a campi incrociati (con i vari negozi nelle colonne e gli articoli nelle righe).
  • Re: Left join su tre tabelle

    Io normalizzerei con 2 tabelle in relazione 1 a molti, una di anagrafica articoli:
    1 - Broccoli
    2 - Latte
    3 - Pane

    Una di ArticoliNegozio:
    1 - 1 - broccoli della coop € 2
    2 - 1 - broccoli superal € 1,50
    3 - 1 - broccoli Esselunga € 1,70
    4 - 2 - Latte della coop.......
  • Re: Left join su tre tabelle

    Scusa, ma non vedo, o non capisco, alcun confronto nel tuo esempio.
    Vedo solo che tu mostri due tabelle affiancate.

    Comunque puoi inserire la terza tabella sempre in LEFT JOIN.

    usa l'interfaccia delle query di Access, che ti aiuta molto.
  • Re: Left join su tre tabelle

    [quote="MaxMag64"]Io normalizzerei con 2 tabelle in relazione 1 a molti, una di anagrafica articoli:
    1 - Broccoli
    2 - Latte
    3 - Pane

    Una di ArticoliNegozio:
    1 - 1 - broccoli della coop € 2
    2 - 1 - broccoli superal € 1,50
    3 - 1 - broccoli Esselunga € 1,70
    4 - 2 - Latte della coop.......[/qu

    il fatto è che io ricevo 3 elenchi distinti ogni volta. Per ciascuna volta dovrei provvedere a disgiungerli ed a ricollegarli a seconda dei valori se non sbaglio.
  • Re: Left join su tre tabelle

    [quote="gibra"]Scusa, ma non vedo, o non capisco, alcun confronto nel tuo esempio.
    Vedo solo che tu mostri due tabelle affiancate.

    Comunque puoi inserire la terza tabella sempre in LEFT JOIN.

    usa l'interfaccia delle query di Access, che ti aiuta molto.[/quot


    si lo so. sono tabelle con prezzi diversi. In alcune ci sono più voci delle altre. ecco perchè mi serve sapere come collegarli con il left join
    . Addirittura certe volte ho voci diverse in tutte e tre le tabelle. Mi ci vorrebbe un outer join sia left che right.
  • Re: Left join su tre tabelle

    willy55 ha scritto:


    Qualora effettui una fusione delle tre tabelle in una unica (ed identificando i dati provenienti da ciascuna) puoi impiegare una query a campi incrociati (con i vari negozi nelle colonne e gli articoli nelle righe).

    intanto ho provveduto a fare come sopra. Ho riversato tutto in una tabella e dopodichè ho creato una query a campi incrociati. grazie per il suggerimento. a breve aprirò un'altra discussione per chiedere come si creano macro per importare dati da excel e legarle alla creazione tabella. a presto.
Devi accedere o registrarti per scrivere nel forum
6 risposte