|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 324
|
Openoffice Base - Aiuto per una query tra 2 tabelle
Ciao a tutti,
sono in grande difficoltà con la creazione di una query tra due tabelle e magari qualcuno qui mi sa aiutare... ![]() - Nella tabella1 ho un campo che si chiama "origine", che determina il materiale grezzo che è stato usato per fabbricare un prodotto. - Nella tabella2 ho tutte le analisi dei vari materiali grezzi (ci sono anche molte ripetizioni della stessa analisi per lo stesso materiale). Vorrei fare una query che aggiunge ad ogni record della tabella 1, un altro campo con la media delle analisi della sua relativa "origine", in modo da affiancare alla scheda di un prodotto anche le caratteristiche del materiale grezzo usato per produrlo. Al momento ho fatto una query dalla tabella2 (chiamiamola query1) che raggruppa le origini uguali e che fa una media dei valori delle loro analisi così da avere una tabella con un record per "origine". A questo punto vorrei creare una query che associa i dati di ogni "origine" della query1, al relativo prodotto finito della tabella 1... Ma non riesco ad eseguire la ricerca... Mi sapreste dare una mano? ![]()
__________________
Non è morto ciò che in eterno può attendere, E con il passare di strane ere anche la morte muore. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jul 2007
Messaggi: 1092
|
Prima di mettermi a battagliare con il pseudo-sql di Base (
![]() |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 324
|
Grazie per la risposta
![]() Purtroppo di teoria dei database ne so pochissimo (normalizzazione questa sconosciuta... ![]() Potresti spiegarmi un pochino meglio cosa intendi con quello che mi hai scritto? Non pensavo si potesse ragruppare i record di una tabella e fare una query con un altra in un unico passaggio... Un altra cosa, mi sembra di capire non ti sta troppo simpatico Base... Conosci qualche alternativa migliore sempre free per gestire i database?
__________________
Non è morto ciò che in eterno può attendere, E con il passare di strane ere anche la morte muore. |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jul 2007
Messaggi: 1092
|
Ciao. Allora, un punto di partenza da cui iniziare a capire cosa si intenda per normalizzazione di un database è wikipedia.
http://it.wikipedia.org/wiki/Normali...e_del_database. Per quanto concerne il tuo problema, sebbene ovviamente non conosca completamente la tua situazione, a grandi linee strutturerei la cosa in questo modo. Tabella materiali id_materiale (semplice numero progressivo) nome_materiale Tabella_analisi id (numero progressivo) id_materiale (il codice che fa riferimento alla chiave primaria della tabella materiali) valore_numerico In questo modo, come ti accennavo ieri, potresti fare una semplice join tra le due tabelle e ricavare agevolmente il nome del materiale e la relativa media, mantenendo i dati coerenti. La query sarebbe questa Codice:
select m.nome_materiale,avg(a.valore_numerico) as media from materiali as m inner join analisi as a on m.id_materiale = a.id_materiale group by a.id_materiale order by a.id_materiale ![]() Infine, per quanto concerne le alternative free, dipende dalle tue esigenze e dalle competenze di chi dovrà mettere mani al database. Sicuramente access e base forniscono un'interfaccia grafica più user-friendly ma se potessi ti orienterei su mysql, il più utilizzato rdbms open source al mondo. Ovviamente non saresti costretto a lavorare tramite riga di comando ma potresti ricorrere ad uno dei tanti front-end messi a disposizione. Personalmente mi trovo benissimo con sqlyog http://download.html.it/software/vedi/2355/sqlyog/ che ti permette di gestire tramite interfaccia grafica la creazione di tabelle, la loro esportazione e quant'altro. P.S. Non so se lo stesso discorso valga per Base come per Access ma con mysql scordati di poter trascinare i campi nella griglia per la generazione delle query. Dovrai scrivertele tu ma ti si aprirà tutto un altro mondo. ![]() |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 324
|
Capisco...
Ora sto cercando di adattare il codice che mi hai dato al mio database, e sembra che vada bene Già questo è un buon risultato. Per quanto riguarda l'adozione di mysql e sqlyog (ma si sa che droghe prendeva il tipo che gli ha dato sto nome?), ci farò un pensiero, anche se purtroppo non ho molto tempo per mettermi ad imparare il codice sql puro e già mi incasino ad ottenere cio che voglio dai programmi più user friendly... Sarebbe molto interessante sapere se fosse possibile ad un certo punto "convertire" il mio db fatto in Base in mysql. Per cause di forza maggiore ho dovuto già iniziare ad inserire dati nel db fatto con Base, e se non è possibile esportare i dati che già ho, l'idea di mettermi a reinserirli tutti a mano in un altro db già mi fa scartare a priori la cosa.
__________________
Non è morto ciò che in eterno può attendere, E con il passare di strane ere anche la morte muore. |
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Jul 2007
Messaggi: 1092
|
Quote:
Il primo link che ho trovato è questo http://www.sastgroup.com/tutorials/i...-tabella-mysql ma per maggiori dettagli ti rimando al manuale ufficiale http://dev.mysql.com/doc/refman/5.1/en/load-data.html |
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 324
|
Anche se dici di non saperne di Base, ne sai comunque più di me di database in generale...
![]() Già la manovara di copiare la tabella in un foglio di calcolo, salvarlo in csv ed importarlo con mysql è una bella scoperta... Almeno so che se un giorno o l'altro avrò il tempo per imparare molto meglio l'sql, esiste un modo per tirare fuori i dati dal mio database di Base ed esportarli altrove... Grazie per le info! ![]()
__________________
Non è morto ciò che in eterno può attendere, E con il passare di strane ere anche la morte muore. |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Dec 2000
Città: Pozzomaggiore (SS)
Messaggi: 12581
|
Solo per dire che base è in grado di interfacciarsi a mysql; per maggiori informazioni consulta la guida presente in questa pagina:
http://www.softcombn.com/joomla/inde...d=28&Itemid=46 |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 324
|
Grasssie per il link
![]() Mi sa che oltre alla perte relativa all'interfaccia con i db mysql cercherò di dare una lettura a tutta la guida.. ![]()
__________________
Non è morto ciò che in eterno può attendere, E con il passare di strane ere anche la morte muore. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:53.