Domanda

Ho costruito un database MySQL per i pagamenti delle bollette negozio. Tutti nel mio ufficio ha MS Access, così sto costruendo uno strumento di front-end di reporting di database con MS Access e il collegamento alle tabelle di MySQL sul back-end.

Ho creato alcune query di Access che fanno riferimento le tabelle di MySQL, fatto qualche manipolazione, e ora vogliono unire tre quesiti (con la stessa struttura della tabella) di nuovo in quello che posso costruire la mia relazione su.

Attraverso la mia ricerca ( articolo1 , article2 , e altri), ho scoperto che una query di unione è quello che mi serve. Posso unione 2 tavoli bene, ma quando cerco di unione il 3 °, la query non riesce a eseguire. Ho testato la query dell'Unione in ciascuna combinazione singolarmente, (1-2, 1-3, 2-3) ed eventuali opere accoppiamento. Sto cercando di capire quello che potrebbe essere sbagliato, al fine di incorporare il terzo query in un unico dell'Unione. Potete offrire qualche suggerimento?

Tabella 1 = A Tabella 2 = B Tabella 3 = C

SELECT A.Year, A.BillingQuarter, A.Name, A.ObjectCode, A.Amount
FROM A

UNION  ALL SELECT B.Year, B.BillingQuarter, B.Name, B.ObjectCode, B.Amount
FROM B

UNION ALL SELECT C.Year, C.BillingQuarter, C.Name, C.ObjectCode, C.Amount
FROM C

;

* UPDATE * Dopo aver esportato ogni query alle tabelle standalone, sono stato in grado di eseguire un 3-tabella di query UNION ALL e fonderli insieme. Quindi il problema è chiaramente nel mio tentativo di UNION 3 query, non in 3 tabelle. Pensieri?

Grazie!

È stato utile?

Soluzione

Non riesco a provare questo in Access ma funziona in SQL Server, selezionare le prime due tabelle con un sindacato come una tabella derivata allora tavolo UNION C e la tabella derivata.

SELECT Year, BillingQuarter, Name, ObjectCode, Amount FROM
    (SELECT Year, BillingQuarter, Name, ObjectCode, Amount FROM @A
    UNION ALL
    SELECT Year, BillingQuarter, Name, ObjectCode, Amount FROM B)
    AS Derived
    UNION ALL
    SELECT Year, BillingQuarter, Name, ObjectCode, Amount FROM C

Può valere la pena guardare la progettazione dello schema / relazioni per vedere se questo può essere evitato.

Altri suggerimenti

Hai bisogno di un punto e virgola (;) per terminare la query. Vedi sotto:

SELECT Year, BillingQuarter, Name, ObjectCode, Amount FROM
    (SELECT Year, BillingQuarter, Name, ObjectCode, Amount FROM @A
    UNION ALL
    SELECT Year, BillingQuarter, Name, ObjectCode, Amount FROM B)
    AS Derived
    UNION ALL
    SELECT Year, BillingQuarter, Name, ObjectCode, Amount FROM C;
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top