Autore Topic: microsoft access  (Letto 5593 volte)  Share 

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline peppere

  • *
  • Registrazione: Ott 2009
  • Post: 9364
microsoft access
« il: 09 Ottobre, 2013, 20:47:05 pm »
una domanda agli esperti informatici, lo uso da poco per lavoro e sono in difficoltà

ho un database che pesca da una sorgente esterna e dopo una serie di query mi da una cosa del tipo:

Pippo   bello                 alto             biondo
Pippo   introverso        gay             juventino
Ciccio   chiatto             alto             bruno
Ciccio   muccus         forgioniano     rattus

cioè per lo stesso soggetto mi da su una riga caratteristiche fisiche, sulla seconda caratteriali... e così via per migliaia di righe.
Naturalmente è un esempio giusto rendere un'idea.

io vorrei avere le caratteristiche sia fisiche che caratteriali su una stessa riga:

Pippo   bello                 alto             biondo      introverso        gay             juventino
Ciccio   chiatto             alto             bruno         muccus         forgioniano     rattus

c'aggia fa? non ho idea

Offline djcarmine

  • *
  • Registrazione: Nov 2009
  • Post: 39235
  • DIABLO VIVE
Re:microsoft access
« Risposta #1 il: 09 Ottobre, 2013, 21:13:14 pm »
posta la query che usi, comunque ti anticipo che ci vuole una join sulla chiave che sarebbe, in tale esempio, la colonna che contiene pippo, franco ciccio ecc.
ed io mi sentii in quel momento come una prostituta sverginata dai suoi aguzzini

C. Pazzo 
Noi vinciamo in quanto esistiamo. Vinciamo quando siamo in 60.000 per Napoli-Cittadella e quando ci ricordiamo di Esteban Lopez o di Picchio Varricchio. Vinciamo odiando le strisciate e vivendo in funzione di questa maglia. Vinciamo andando con un paio di amici allo stadio e non guardando la partita in casa da soli in un salotto di Reggio Calabria. Vinciamo quando siamo migliaia ad ogni trasferta, vinciamo quando uno juventino nella nostra città viene additato come essere anormale e malato di scabbia

Offline peppere

  • *
  • Registrazione: Ott 2009
  • Post: 9364
Re:microsoft access
« Risposta #2 il: 09 Ottobre, 2013, 21:25:49 pm »
posta la query che usi, comunque ti anticipo che ci vuole una join sulla chiave che sarebbe, in tale esempio, la colonna che contiene pippo, franco ciccio ecc.
non faccio query in sql, non ne sono capace. Faccio query guidate in modalità struttura, ne sono almeno una decina.
Parto da dati che ho a sistema, 2 sorgenti diverse, li porto in locale facendo refresh settimanali (lavorando dal sistema direttamente va lentissimo perchè so milioni di dati) o giornalieri e poi smanetto fino ad arrivare al problema che ti dicevo.
Proprio perchè sono tabelle linkate a dei server non uso chiavi, non me le fa scegliere e quindi sono al problema posto.

al limite potrei pensare di sdoppiare la tabellona in 2 una con le caratteristiche fisiche e una con quelle caratteriali e crearne una terza mettendo in relazione Pippo cu Pippo.
ma mi pare na cacata e non saprei farlo comunque

Offline djcarmine

  • *
  • Registrazione: Nov 2009
  • Post: 39235
  • DIABLO VIVE
Re:microsoft access
« Risposta #3 il: 09 Ottobre, 2013, 21:30:18 pm »
non saprei pè, io queste pazzielle come access non le conosco :look: . ma questi dati che prendi provengono da un db giusto? da due tabelle diverse, una con le caratteristiche fisiche e l'altra caratteriale, piu o meno nella forma

tabella_fisica (nome, capelli, occhi, pesce, ecc. )
tabella_caratt (umore, sesso, forgionaggine, ecc. )

?
ed io mi sentii in quel momento come una prostituta sverginata dai suoi aguzzini

C. Pazzo 
Noi vinciamo in quanto esistiamo. Vinciamo quando siamo in 60.000 per Napoli-Cittadella e quando ci ricordiamo di Esteban Lopez o di Picchio Varricchio. Vinciamo odiando le strisciate e vivendo in funzione di questa maglia. Vinciamo andando con un paio di amici allo stadio e non guardando la partita in casa da soli in un salotto di Reggio Calabria. Vinciamo quando siamo migliaia ad ogni trasferta, vinciamo quando uno juventino nella nostra città viene additato come essere anormale e malato di scabbia

falceEmarcello

microsoft access
« Risposta #4 il: 09 Ottobre, 2013, 21:33:38 pm »
posta la query che usi, comunque ti anticipo che ci vuole una join sulla chiave che sarebbe, in tale esempio, la colonna che contiene pippo, franco ciccio ecc.

Il mio ragazzo :love:


Peppe anche dalla modalita struttura c'e' un pulsante che ti fa passare alla modalita' sql, trovalo premilo e posta la query
Perche' cosi come hai posto la domanda sembra un banalissimo join ma da quello che hai scritto dopo nun se capisc manc o cazz
« Ultima modifica: 09 Ottobre, 2013, 21:36:09 pm da F&Marcello »

Offline peppere

  • *
  • Registrazione: Ott 2009
  • Post: 9364
Re:microsoft access
« Risposta #5 il: 09 Ottobre, 2013, 21:41:50 pm »
non saprei pè, io queste pazzielle come access non le conosco :look: . ma questi dati che prendi provengono da un db giusto? da due tabelle diverse, una con le caratteristiche fisiche e l'altra caratteriale, piu o meno nella forma

tabella_fisica (nome, capelli, occhi, pesce, ecc. )
tabella_caratt (umore, sesso, forgionaggine, ecc. )

?
no, ho fatto un esempio di merda :asd:

da un server e quindi da una tabella prendo
sia caratteristiche fisiche che caratteriali che però sono su due record diversi

dall'altro piglio attributi di una caratteristica che joino a Pippo e caratteristica stessa

es
server A     

Pippo      strunz

B:
Pippo    grado di stronzaggine
e viene fuori un record

un altro record è:
Pippo      alto   (A)
Pippo      quant'è alto  (B)

e viene fuori un altro record.

io vorrei ottenere
Pippo    strunz     quant'è strunz             alto            quant'è alto

tutto sullo stesso record.
mi so spiegato peggio probabilmente  :chiagnazzarri:


Offline peppere

  • *
  • Registrazione: Ott 2009
  • Post: 9364
Re:microsoft access
« Risposta #6 il: 09 Ottobre, 2013, 21:42:34 pm »
ho il portatile aziendale in azienda :ruoss:

falceEmarcello

microsoft access
« Risposta #7 il: 09 Ottobre, 2013, 21:45:13 pm »

no, ho fatto un esempio di merda :asd:

da un server e quindi da una tabella prendo
sia caratteristiche fisiche che caratteriali che però sono su due record diversi

dall'altro piglio attributi di una caratteristica che joino a Pippo e caratteristica stessa

es
server A     

Pippo      strunz

B:
Pippo    grado di stronzaggine
e viene fuori un record

un altro record è:
Pippo      alto   (A)
Pippo      quant'è alto  (B)

e viene fuori un altro record.

io vorrei ottenere
Pippo    strunz     quant'è strunz             alto            quant'è alto

tutto sullo stesso record.

mi so spiegato peggio probabilmente  :chiagnazzarri:


Decisamente :asd:
Dipende tutto se pippo e' pk ( chiave ) e se le due tabelle appartengono allo stesso db, altrimenti nessuno ti garantisce che il pippo alto e' o stess pipp strunz

Offline djcarmine

  • *
  • Registrazione: Nov 2009
  • Post: 39235
  • DIABLO VIVE
Re:microsoft access
« Risposta #8 il: 09 Ottobre, 2013, 21:55:29 pm »
Il mio ragazzo :love:


Peppe anche dalla modalita struttura c'e' un pulsante che ti fa passare alla modalita' sql, trovalo premilo e posta la query
Perche' cosi come hai posto la domanda sembra un banalissimo join ma da quello che hai scritto dopo nun se capisc manc o cazz

maestro  :compagni:

ue pè, tu e queste metafore ci stai facendo azzeccare le punte, fai nomi cognomi e numeri se no nun capimm nient :look:
ed io mi sentii in quel momento come una prostituta sverginata dai suoi aguzzini

C. Pazzo 
Noi vinciamo in quanto esistiamo. Vinciamo quando siamo in 60.000 per Napoli-Cittadella e quando ci ricordiamo di Esteban Lopez o di Picchio Varricchio. Vinciamo odiando le strisciate e vivendo in funzione di questa maglia. Vinciamo andando con un paio di amici allo stadio e non guardando la partita in casa da soli in un salotto di Reggio Calabria. Vinciamo quando siamo migliaia ad ogni trasferta, vinciamo quando uno juventino nella nostra città viene additato come essere anormale e malato di scabbia

falceEmarcello

microsoft access
« Risposta #9 il: 09 Ottobre, 2013, 22:01:28 pm »

maestro  :compagni:

ue pè, tu e queste metafore ci stai facendo azzeccare le punte, fai nomi cognomi e numeri se no nun capimm nient :look:

Ma sopratutto una tabella che in uno stesso campo ammesca a seconda ra situazione un valore piuttosto che un altro solo chi si affida a munnezza del livello di access la puo' partorire.

Offline peppere

  • *
  • Registrazione: Ott 2009
  • Post: 9364
Re:microsoft access
« Risposta #10 il: 09 Ottobre, 2013, 22:19:33 pm »
allo':

da un server ho:
commessa     ciclo lavoro       DataSchedulata di A o B           
1                        A                   1 ago
1                        B                    8 ago

dall'altro ho
commessa    ciclo lavoro         DataPromessa di A o B
1                        A                      3 ago
1                        B                       9 ago

il primo server è in mano ai master scheduler che decidono quando una cosa va fatta (data sched), il secondo è compilato dai planner che dicono effettivamente quando una cosa si fa (data prom) in base a duecentomila variabili.
I cicli A e B avvengono sempre entrambi, uno dopo l'altro

Dopo un po' di query qui e lì, non è così banale come ve la faccio, viene fuori la tabella:
commessa   ciclo    DataSched    Data prom
1                    A          1 ago              3 ago
1                    B           8 ago              9 ago
questo per migliaia di commesse

io vorrei/devo avere per forza

commessa    ciclo    DataSched     DataProm    ciclo   DataSched     DataProm
1                     A         1 ago               3 ago        B          8 ago             9 ago

chiaro?

« Ultima modifica: 09 Ottobre, 2013, 22:20:49 pm da peppere »

Offline peppe9

  • *
  • Registrazione: Ott 2009
  • Post: 14547
  • Località: Sant'Anastasia
  • Sesso: Maschio
  • PARTENOPEO!
R: microsoft access
« Risposta #11 il: 09 Ottobre, 2013, 22:25:23 pm »
Messa così è abbastanza banale come diceva Carmine. Una join e fila liscio perché se riesci ad arrivare a quella tabella puoi sicuramente arrivare al tuo obiettivo facendo una query diversa, appunto una join. Poi bisogna vedere bene che intendi, se stiamo capendo il cazzo per la banca dell'acqua

Inviato dal mio GT-I9100 usando Tapatalk
« Ultima modifica: 09 Ottobre, 2013, 22:26:58 pm da peppe9 »


Offline peppere

  • *
  • Registrazione: Ott 2009
  • Post: 9364
Re:R: microsoft access
« Risposta #12 il: 09 Ottobre, 2013, 22:29:11 pm »
Messa così è abbastanza banale come diceva Carmine. Una join e fila liscio perché se riesci ad arrivare a quella tabella puoi sicuramente arrivare al tuo obiettivo facendo una query diversa, appunto una join. Poi bisogna vedere bene che intendi, se stiamo capendo il cazzo per la banca dell'acqua

Inviato dal mio GT-I9100 usando Tapatalk
mi pare strano perchè i due cicli per la stessa commessa sono su record separati già nella tabella iniziale che prendo dal server

Offline peppe9

  • *
  • Registrazione: Ott 2009
  • Post: 14547
  • Località: Sant'Anastasia
  • Sesso: Maschio
  • PARTENOPEO!
R: microsoft access
« Risposta #13 il: 09 Ottobre, 2013, 22:38:21 pm »
Si ma se riesci ad arrivare alla tabella a cui arrivi tu, riesci anche ad avere ciò che ti serve visto che cmq una join la fai per forza di cose mettendo sulla stessa riga caratteristiche della prima E della seconda tabella. Poi ti ripeto bisogna vedere il tutto

Inviato dal mio GT-I9100 usando Tapatalk


Offline peppere

  • *
  • Registrazione: Ott 2009
  • Post: 9364
Re:R: microsoft access
« Risposta #14 il: 09 Ottobre, 2013, 22:47:02 pm »
Si ma se riesci ad arrivare alla tabella a cui arrivi tu, riesci anche ad avere ciò che ti serve visto che cmq una join la fai per forza di cose mettendo sulla stessa riga caratteristiche della prima E della seconda tabella. Poi ti ripeto bisogna vedere il tutto

Inviato dal mio GT-I9100 usando Tapatalk
la join la faccio perchè so dati che vengono da 2 tabelle diverse.
Ma nel caso dei cicli A e B sono su record diversi già in partenza anche se hanno stessa commessa.

commessa     ciclo lavoro       DataSchedulata di A o B           
1                        A                   1 ago
1                        B                    8 ago

come faccio qui a metterli su una riga, posso mica joinarli visto che sono su due record della stessa tabella?

Offline peppere

  • *
  • Registrazione: Ott 2009
  • Post: 9364
Re:microsoft access
« Risposta #15 il: 09 Ottobre, 2013, 22:48:11 pm »
nel dubbio spostate in uncensored, nun se po mai sapè. Provvederò io a bestemmiare di tanto in tanto per tenerci buono south

Offline djcarmine

  • *
  • Registrazione: Nov 2009
  • Post: 39235
  • DIABLO VIVE
Re:microsoft access
« Risposta #16 il: 09 Ottobre, 2013, 23:12:08 pm »
però se vuoi/devi necessariamente lavorare a partire dal resultSet

commessa   ciclo    DataSched    Data prom
1                    A          1 ago              3 ago
1                    B           8 ago              9 ago

suona come una cosa che si può risolvere con una self join, praticamente devi fare una query dove joini la tabella con se stessa su "commessa"

però che sistema informatico a zupp e fasul :look:
« Ultima modifica: 09 Ottobre, 2013, 23:13:14 pm da djcarmine »
ed io mi sentii in quel momento come una prostituta sverginata dai suoi aguzzini

C. Pazzo 
Noi vinciamo in quanto esistiamo. Vinciamo quando siamo in 60.000 per Napoli-Cittadella e quando ci ricordiamo di Esteban Lopez o di Picchio Varricchio. Vinciamo odiando le strisciate e vivendo in funzione di questa maglia. Vinciamo andando con un paio di amici allo stadio e non guardando la partita in casa da soli in un salotto di Reggio Calabria. Vinciamo quando siamo migliaia ad ogni trasferta, vinciamo quando uno juventino nella nostra città viene additato come essere anormale e malato di scabbia

Offline raistlin980

  • *
  • Registrazione: Nov 2009
  • Post: 7300
  • Località: Napoli
  • Sesso: Maschio
Re:microsoft access
« Risposta #17 il: 10 Ottobre, 2013, 01:10:43 am »
Sì joina con se stessa su commessa e su ciclo diverso da ciclo.

Ma io non capirò mai perchè i crestiani devono uccidersi a fare i salti mortali su access quando ce stann i database tantu bell.
Citazione da: Aurelio De Laurentiis
Bisogna ripetere, ripetere, vincere, vincere

falceEmarcello

microsoft access
« Risposta #18 il: 10 Ottobre, 2013, 07:26:32 am »

la join la faccio perchè so dati che vengono da 2 tabelle diverse.
Ma nel caso dei cicli A e B sono su record diversi già in partenza anche se hanno stessa commessa.


commessa     ciclo lavoro       DataSchedulata di A o B           
1                        A                   1 ago
1                        B                    8 ago

come faccio qui a metterli su una riga, posso mica joinarli visto che sono su due record della stessa tabella?

Peppe se, come si evince dalla tabellina che hai postato, per ogni commessa si ha uno o piu' cicli di lavoro allora i dati stanno bene come stanno.
Nel senso che l'entita' commessa e' in relazione (1a n)  con l'entita' ciclo di lavoro che ha, per inciso,  l'attributo dataschedulata.
Ora volere riportare questa cardinalita' a livello di un solo record e' un fattore fortemente denormalizzante, perche' cosa succede se a un certo punto si introduce un ciclo c ? O anche se il ciclo a e' presente e quello b no ?
Il tuo a questo punto e' un problema di visualizzazione ( che col db non c'entra un cazzo ) perche' suppongo che per comodita' tu preferisci vedere i dati di luongo piuttosto che uno a sott a nato.
Questo in linea tecnica andrebbe fatto con l'ausilio di un linguaggio di programmazione che, a partire da quel resultSet fa' un po' di logica e ti sistema i dati come te piace a te.
In access ad esempio ci sono le macro in visual basic che te lo fanno fare.
Posto che per te potrebbe essere un cacamento di cazzo e che, se ho capito bene, a te non interessa un processo totalmente automatico che risolva il problema ( mi sa che devi fare un report o na cos e chest ) allora, sotto determinate condizioni, ad esempio che per ogni commessa siano sempre presenti i cicli a e b (e non altri) puoi fare una "vista" che puoi ottenere, come ti dicevano i uagliun, facendo il join sulla stessa tabella

  Select ... From tua_tabella t1 join tua_tabella t2 on t1.commessa = t2.commessa ....

 Se invece la cardinalita' del dato e' sempre fissa ( tutti i record hanno sempre e comunque i cicli  a e b )  potresti pensare di acchittare una tabella dove pero' a questo punto il campo ciclo di lavoro e' pleonastico :look: perche' ti bastano le informazioni

Commessa   DataschedulataA DataschedulataB

Offline peppere

  • *
  • Registrazione: Ott 2009
  • Post: 9364
Re:microsoft access
« Risposta #19 il: 10 Ottobre, 2013, 09:41:25 am »
SELECT Master_02.COMM, Master_02.LOT, Master_02.MaxOfTYPE, Master_02.COD_IMP, Master_02.MaxOfSCHED, Master_02.MaxOfACTUAL, Master_02.MaxOfPROM, Master_02.COD_IMP, Master_02.MaxOfSCHED, Master_02.MaxOfACTUAL, Master_02.MaxOfPROM, Master_02.MaxOfContract_Date
FROM Master_02 INNER JOIN Master_02 AS Master_02_1 ON (Master_02.LOT = Master_02_1.LOT) AND (Master_02.COMM = Master_02_1.COMM);


ho fatto quanto vedete sopra e mi viene fuori quello che mi servirebbe tranne che vedo su ogni record due volte lo stesso ciclo.
Mi viene

commessa1   cicloA   schedA    promA    cicloA    schedA    promA
commessa1   cicloB   schedB    promB    cicloB    schedB    promB

come faccio a dirgli che su un solo record voglio 2 cicli diversi? :look: