IALweb Homepage
Forum Home Forum Home > MS Office > Microsoft Office > Microsoft Access
  New Posts New Posts RSS Feed - [Risolto] Unione valore
  FAQ FAQ  Forum Search   Events   Register Register  Login Login


REGISTRATEVI su IALWeb forum!

[Risolto] Unione valore

 Post Reply Post Reply Page  12>
Author
Message
imperiali View Drop Down
Utente Senior
Utente Senior


Joined: 30/Lug/2010
Status: Offline
Points: 470
Post Options Post Options   Thanks (0) Thanks(0)   Quote imperiali Quote  Post ReplyReply Direct Link To This Post Topic: [Risolto] Unione valore
    Posted: 28/Nov/2017 at 17:43
permettetemi di salutare il forum tutto.
Cari amici ho bisogno del vostro aiuto per risolvere un problema per me ostico.
Sto ristrutturando un db di un caro amico, in una query vi sono due campi che contengono lo stesso valore, esso è riferito ad un Id di una tabella, del tipo campo A al record 3 contiene il valore ID 6, il Campo B al record 1 contiene lo stesso valore, ora vorrei creare una query o una tabella che contenga un campo contenete sia il valore del campo A che il valore del campo B, è possibile ciò?
al limite se potete indicarmi dei link contenete articoli in merito alla problematica di cui sopra.
ringrazio anticipatamente
M.I.





Edited by imperiali - 30/Nov/2017 at 10:47
maurizio
Back to Top
Sponsored Links


Back to Top
willy55 View Drop Down
Moderatore
Moderatore
Avatar
Esperto di Access

Joined: 03/Ago/2011
Location: Italy
Status: Offline
Points: 9523
Post Options Post Options   Thanks (0) Thanks(0)   Quote willy55 Quote  Post ReplyReply Direct Link To This Post Posted: 28/Nov/2017 at 20:51

Ciao Maurizio,
se ho compreso l'esigenza, puoi mettere a confronto i valori della singola tabella, effettuando due query, nella prima con ID e CampoA (qryParteA) e nella seconda (qryParteB) sempre con ID ma con il CampoB.
In tal modo con una ulteriore query potrai ottenere di effettuare una comparazione delle due query, esaminando ove i due campi (CampoA e CampoB) sono uguali e prendere in considerazione i rispettivi ID, come nell'esempio seguente:


SELECT qryParteA.ID, qryParteA.CampoA, qryParteB.ID, qryParteB.CampoB
FROM qryParteA, qryParteB
WHERE (((qryParteA.CampoA)=[qryParteB]![CampoB]));

 

Willy
Back to Top
imperiali View Drop Down
Utente Senior
Utente Senior


Joined: 30/Lug/2010
Status: Offline
Points: 470
Post Options Post Options   Thanks (0) Thanks(0)   Quote imperiali Quote  Post ReplyReply Direct Link To This Post Posted: 29/Nov/2017 at 07:02
grazie willy, ti ringrazio per il solerte aiuto , con la query di comparazione effettivamente porto i due campi sullo stesso record, ora, (e quì mi taccio per non accreditarmi tropi improperi da parte mia  per la mia ignoranza in materia) i valore  è ripartito si sullo stesso record, ma su due campi separati, dovremmo unire questi due valore su un unico campo,
es.
Quote
 con la query di comparazione ho ottenuto
IDX | valoreA | Valore A|ecc, ecc, ecc
dovrei ottenere come risultato finale
IDX | valoreA |ecc, ecc
IDX+1 |valoreA|ecc,ecc
il valoreA è riferito ad un operaio che durante una giornata lavorativa effettua lo stesso intervento ma con qualifiche diverse (non chiedermi il perché)
il tutto lo potrei risolvere con una query d'unione, ma, vorrei evitare di fare un giro troppo lungo ( non vorrei che da Lodi per andare a Milano debba passare per Palermo)
il risultato che dovrei ottenere è la somma totale delle ore che attualmente la query D'unione mi mostra in record diversi, 
come dice il saggio...piano piano arrivo
grazie ancora


Edited by imperiali - 29/Nov/2017 at 08:11
maurizio
Back to Top
willy55 View Drop Down
Moderatore
Moderatore
Avatar
Esperto di Access

Joined: 03/Ago/2011
Location: Italy
Status: Offline
Points: 9523
Post Options Post Options   Thanks (0) Thanks(0)   Quote willy55 Quote  Post ReplyReply Direct Link To This Post Posted: 29/Nov/2017 at 23:32
La tua descrizione è piuttosto contorta (prima parli di Campo A e B ora solo del primo Valore) per cui non si comprende l'obiettivo che vuoi raggiungere.
Presenta un esempio, magari un semplice estratto, con i dati da cui parti e le operazioni che vuoi eseguire (con i passi relativi) per giungere alla “query di unione” di cui parli.


    
Willy
Back to Top
imperiali View Drop Down
Utente Senior
Utente Senior


Joined: 30/Lug/2010
Status: Offline
Points: 470
Post Options Post Options   Thanks (0) Thanks(0)   Quote imperiali Quote  Post ReplyReply Direct Link To This Post Posted: 30/Nov/2017 at 07:04
si vede che nella descrizione della problemantica sono stato nebuloso.
partiamo dal casino del db ( non mi pongo domande sul motivo di quanto sto descrivendo)
un operaio ha due qualifiche e ricopre la stessa mansione ma con gli incarichi diversi, mi spiego meglio 
una volta fa x cose con la qualifica A , un'altra volte fa le stesse cose ma con la qualifica B.
ora si a una tabella anagrafica - una tabella lavoro dove vi sono due combo box (lavoratore 1 e lavoratore 2) che prelevano i dati dalla tabella anagrafica ( pertanto una stessa operazione è fatta da due soggetti).
Ora visto che l'operaio X lavora sia con la qualifica A che con la qualifica B mi è stato chiesto di sommare le ore di lavoro a prescindere dalla qualifica.
 la tabella lavoro è costituita ( tralasciando gli altri campi) da
Quote
IDlavoro|operaioA|operaioB|Saldatura|
01| IMPERIALI | TIZIO | ore 4
02 |TIZIO | IMPERIALI |ore 6
questo perché il primo operaio fa il lavoro, il secondo verifica e collauda, 
ora io dovrei sommare le ore, avrei pensato alla query d'unione di cui sopra sapendo che l'ID di IMPERIALI lo trovo sia nel campo(diciamo A) sia nel campo (diciamo B), 
avevo pensato (visto il mio livello culturale in materia) a due query (primo - secondo) e poi fare una query d'unione.
secondo te è possibile ciò senza rifare il tutto? 
Grazie
M.I.

maurizio
Back to Top
@Alex View Drop Down
Utente Onorario
Utente Onorario
Avatar

Joined: 09/Apr/2012
Location: Mantova
Status: Offline
Points: 4978
Post Options Post Options   Thanks (0) Thanks(0)   Quote @Alex Quote  Post ReplyReply Direct Link To This Post Posted: 30/Nov/2017 at 07:42
La tabella è mal impostata.
Se 2 Risorse contribuiscono al lavoro non si mettono in Orizzontale... ma in logica relazionale si deve rispettare un criterio di normalizzazione in 3° Forma Normale, ossia 1-M o Molti a Molti nel tuo caso.
Un po come fare una Distinta di Materiali per una Fattura, non scriveresti MAI una tabella così

IdFattura|Materiale1|Materiale2|Materiale3|Costo1|Costo2|Costo3

Ne consegue che per ogni lavoro devi poter prevedere [Molte] Risorse assegnabili, e questo definisce una Relazione 1-M, ma se le risorse possono ricoprire incarichi differenti ci deve essere una definizione di Attributo Incarico sulla Anagrafica risorse, quindi dovrai selezionare non Tizio con incarico A, ma Tizio con Incarico B.
A quel punto raggruppando per Commessa e per "Tizio" ottieni le somme di TIzio IncaricoA ed IncaricoB, se invece vuoi tenerle distinte raggruppi per Commessa e per Incarico.

Tutto il resto ti introdice devianze dalla semplificazione relazionale e sono come il DOMINO...
Non SUPPORTO il CROSSPOST.
Mio Sito
Scaricare i DEMO modificando l'Estensione.
Back to Top
imperiali View Drop Down
Utente Senior
Utente Senior


Joined: 30/Lug/2010
Status: Offline
Points: 470
Post Options Post Options   Thanks (0) Thanks(0)   Quote imperiali Quote  Post ReplyReply Direct Link To This Post Posted: 30/Nov/2017 at 08:54
vedi alex il db non è di mia fattura,mi è stato dato per essere modificato in base a quelle esigenze.
credo che faccio prima nel reimpostare il tutto  che tentare soluzioni arcane
maurizio
Back to Top
@Alex View Drop Down
Utente Onorario
Utente Onorario
Avatar

Joined: 09/Apr/2012
Location: Mantova
Status: Offline
Points: 4978
Post Options Post Options   Thanks (0) Thanks(0)   Quote @Alex Quote  Post ReplyReply Direct Link To This Post Posted: 30/Nov/2017 at 09:05
Se ne hai modo è sicuramente sempre la cosa migliore lavorare su una struttura "NORMALIZZATA"... altrimenti vedi anche tu che sono più le complicazioni che i vantaggi...
I poco esperti perdono 10min per l'ingegneria del Database ed ore per le Maschere... purtroppo è meglio il contrario, ma lo si capisce solo con le basi e l'esperienza.
Non SUPPORTO il CROSSPOST.
Mio Sito
Scaricare i DEMO modificando l'Estensione.
Back to Top
imperiali View Drop Down
Utente Senior
Utente Senior


Joined: 30/Lug/2010
Status: Offline
Points: 470
Post Options Post Options   Thanks (0) Thanks(0)   Quote imperiali Quote  Post ReplyReply Direct Link To This Post Posted: 30/Nov/2017 at 10:46
Infatti ... non vale la pena mettersi in un ginepraio per tentare di risolvere il problema, come ho detto lo avrei anche risolto ma ...un db non relazionatoConfused
grazie comunque
M.I

maurizio
Back to Top
CarlettoFed View Drop Down
Utente Base
Utente Base


Joined: 08/Nov/2017
Status: Offline
Points: 55
Post Options Post Options   Thanks (0) Thanks(0)   Quote CarlettoFed Quote  Post ReplyReply Direct Link To This Post Posted: 01/Dic/2017 at 06:07
In effetti si può effettuare ciò che come puoi vedere nell'immagine seguente

https://app.boolebox.com/app/index.html?obj=3300340032003700390034003800370037003800370036003600300033003000350034003500


dove:
  1.  crei la query di selezione per ricavare il riepilogo delle ore degli operai A
  2.  crei la query di selezione per ricavare il riepilogo delle ore degli operai B
  3.  crei la query di selezione dove relazioni la tabella Anagrafica alle query di riepilogo degli operai A e di riepilogo degli operai B per ricavare il riepilogo globale delle ore degli Operai.
Back to Top
 Post Reply Post Reply Page  12>
  Share Topic   

Forum Jump Forum Permissions View Drop Down

Forum Software by Web Wiz Forums® version 10.17
Copyright ©2001-2013 Web Wiz Ltd.

This page was generated in 0,096 seconds.