Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Aiuto Query [Access 2007]

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Aiuto Query [Access 2007]

Postdi manolo » 08/12/12 12:30

Ho due tabelle

prima Tabella:

CODICE UFFICIO | MANSIONE | TIPO UFFICIO

123 cuoco Mensa
123 lavapiati Mensa
222 cassiere Mensa
222 barista Mensa
123 pasticcere Mensa
123 pizzettaglio Mensa

CODICE UFFICIO | RAGGRUPPAMENTO | ECCEZIONE | RAGGRUPPAMENTO SE ECCEZIONE
123 cucina pasticcere bar
222 staff barista bar

quindi io vorrei che alla fine ho una tabella cosi strutturata:

CODICE UFFICIO | MANSIONE | TIPO UFFICIO | RAGGRUPPAMENTO
123 cuoco Mensa cucina
123 lavapiatti Mensa cucina
222 cassiere Mensa staff
222 barista Mensa bar (la mansione sta nel campo eccezione in corrispondenza di Cod. 222)
123 pasticcere Mensa bar la mansione sta nel campo eccezione in corrispondenza di Cod. 123)
123 pizzettaglio Mensa cucina

spero di essere stato chiaro..

sto provando creando di volta volta tabelle..circa tre...ma vorrei qualcosa di piu immediato..tipo in una maschera un tasto collegato ad un codice o a varie query che mi calcol la tabella finale completa....mi serve per lavoro..please :( :(
manolo
Utente Junior
 
Post: 24
Iscritto il: 06/12/12 17:32

Sponsor
 

Postdi archimede » 08/12/12 15:46

Codice: Seleziona tutto
SELECT T1.[CODICE UFFICIO], T1.MANSIONE, T1.[TIPO UFFICIO], T2.RAGGRUPPAMENTO
  FROM Tabella1 AS T1, Tabella2 AS T2
 WHERE T1.[CODICE UFFICIO] = T2.[CODICE UFFICIO]
   AND T1.MANSIONE <> T2.ECCEZIONE
UNION
SELECT T1.[CODICE UFFICIO], T1.MANSIONE, T1.[TIPO UFFICIO], T2.[RAGGRUPPAMENTO SE ECCEZIONE]
  FROM Tabella1 AS T1, Tabella2 AS T2
 WHERE T1.[CODICE UFFICIO] = T2.[CODICE UFFICIO]
   AND T1.MANSIONE = T2.ECCEZIONE;
HTH.

Alessandro
archimede
Moderatore
 
Post: 2753
Iscritto il: 07/11/02 12:41
Località: Genova

Re: Aiuto Query [Access 2007]

Postdi manolo » 10/12/12 10:48

no non mi va...

su 10349 record di partenza mi tira fuori solo i 500 che hanno quel codice ufficio..ma le eccezioni sono 12... :(

se provo a generare un espressione?

a me serve una cosa del tipo:

prendi tutta la prima tabella e la colonna RAGGRUPPAMENTO della 2

se: codiceufficio di T1 = codice ufficio di T2 allora RAGGRUPPAMENTO = RAGGRUPPAMENTO di T2

se codiceufficio di T1 = codice ufficio di T2 e MANSIONE.T1 = ECCEZIONE.T2 allora RAGGRUPPAMENTO = RAGGRUPPAMENTOSEECEZIONE.T2

però se codiceufficio di T1 = codice ufficio di T2 e MANSIONE.T1 <> ECCEZIONE.T2 allora RAGGRUPPAMENTO = RAGGRUPPAMENTO.T2

aiutateme...
manolo
Utente Junior
 
Post: 24
Iscritto il: 06/12/12 17:32

Postdi archimede » 10/12/12 10:58

manolo ha scritto:se codiceufficio di T1 = codice ufficio di T2 e MANSIONE.T1 = ECCEZIONE.T2 allora RAGGRUPPAMENTO = RAGGRUPPAMENTOSEECEZIONE.T2

però se codiceufficio di T1 = codice ufficio di T2 e MANSIONE.T1 <> ECCEZIONE.T2 allora RAGGRUPPAMENTO = RAGGRUPPAMENTO.T2
A me sembra che la query che ti ho mandato faccia esattamente questo. Puoi postare qualche record di esempio per cui NON fa quel che ti aspetti?
manolo ha scritto:mi tira fuori solo i 500 che hanno quel codice ufficio
Scusa, ma che significa "quel" codice ufficio?

Alessandro
archimede
Moderatore
 
Post: 2753
Iscritto il: 07/11/02 12:41
Località: Genova

Re: Aiuto Query [Access 2007]

Postdi manolo » 10/12/12 11:53

Allora praticamente succede questo.

la tabella 1 ha circa 10349 record...

quello che voglio ottenere è una tabella con 10349 con l'aggiunta del campo raggruppamento che dipende da quella cosa spiegata in precedenza.

la query che mi hai suggerito (e di cui ti ringrazio ;) ) funziona ma mi tira fuori solo 525 record su 10349. questi 525 record sono quelli con CODICE UFFICIO che contiene l'eccezione. forse ho capito il problema...nello spiegare la situazione non ho detto che ci sono CODICE UFFICIO che non hanno eccezioni...quindi i 525 sono giusti ma andrebbero uniti ai 9824 record che hanno "eccezioni" e quindi nella tabella 2 i CODICI UFFICIO di quei 9824 hanno il campo eccezione vuoto

ti prego Archi aiutami
manolo
Utente Junior
 
Post: 24
Iscritto il: 06/12/12 17:32

Postdi archimede » 10/12/12 12:02

manolo ha scritto:ci sono CODICE UFFICIO che non hanno eccezioni
Intendi che ci sono dei codice uff. nella tabella 1 che NON sono presenti nella tabella 2?

Se sì, vuoi visualizzarli con raggruppamento vuoto?

Se no, controlla di aver sostituito i nomi ESATTI delle tue tabelle e dei tuoi campi nella query, giacché questa dovrebbe mostrarti tutti i records il cui cod. uff. è presente in entrambe le tabelle.

Alessandro
archimede
Moderatore
 
Post: 2753
Iscritto il: 07/11/02 12:41
Località: Genova

Re:

Postdi manolo » 10/12/12 12:09

archimede ha scritto:
manolo ha scritto:ci sono CODICE UFFICIO che non hanno eccezioni
Intendi che ci sono dei codice uff. nella tabella 1 che NON sono presenti nella tabella 2?

Se sì, vuoi visualizzarli con raggruppamento vuoto?

Se no, controlla di aver sostituito i nomi ESATTI delle tue tabelle e dei tuoi campi nella query, giacché questa dovrebbe mostrarti tutti i records il cui cod. uff. è presente in entrambe le tabelle.

Alessandro


stiamo nella seconda ipotesi i nomi sono esatti...ma mi vengono sempre 525 record e i codici ufficio di questi sono 4 che sono proprio i 4 codici ufficio che hanno il campo eccezione non vuoto
manolo
Utente Junior
 
Post: 24
Iscritto il: 06/12/12 17:32

Postdi archimede » 10/12/12 12:18

Scusa, hai ragione:
Codice: Seleziona tutto
SELECT T1.[CODICE UFFICIO], T1.MANSIONE, T1.[TIPO UFFICIO], T2.RAGGRUPPAMENTO
  FROM Tabella1 AS T1, Tabella2 AS T2
 WHERE T1.[CODICE UFFICIO] = T2.[CODICE UFFICIO]
   AND T1.MANSIONE <> nz(T2.ECCEZIONE, " ")
UNION
SELECT T1.[CODICE UFFICIO], T1.MANSIONE, T1.[TIPO UFFICIO], T2.[RAGGRUPPAMENTO SE ECCEZIONE]
  FROM Tabella1 AS T1, Tabella2 AS T2
 WHERE T1.[CODICE UFFICIO] = T2.[CODICE UFFICIO]
   AND T1.MANSIONE = T2.ECCEZIONE;
HTH.

Alessandro
archimede
Moderatore
 
Post: 2753
Iscritto il: 07/11/02 12:41
Località: Genova

Re: Aiuto Query [Access 2007]

Postdi manolo » 10/12/12 14:27

grazie Ale funziona ma c'ha solo un problema..su 10349 record me ne fa 10331. cerco di capire il perchè ma comunque GRAZIE!
manolo
Utente Junior
 
Post: 24
Iscritto il: 06/12/12 17:32

Re: Aiuto Query [Access 2007]

Postdi manolo » 10/12/12 15:15

manolo ha scritto:grazie Ale funziona ma c'ha solo un problema..su 10349 record me ne fa 10331. cerco di capire il perchè ma comunque GRAZIE!


problema risolto. ancora grazie..ma già che ci sto provo a chiedere un'altra cosa:

se il codice ufficio non viene trovato come posso dire alla query di scrivermi comunque la riga?
manolo
Utente Junior
 
Post: 24
Iscritto il: 06/12/12 17:32

Postdi archimede » 10/12/12 15:37

Codice: Seleziona tutto
SELECT T1.[CODICE UFFICIO], T1.MANSIONE, T1.[TIPO UFFICIO], T2.RAGGRUPPAMENTO
  FROM Tabella1 AS T1, Tabella2 AS T2
 WHERE T1.[CODICE UFFICIO] = T2.[CODICE UFFICIO]
   AND T1.MANSIONE <> nz(T2.ECCEZIONE, " ")
UNION
SELECT T1.[CODICE UFFICIO], T1.MANSIONE, T1.[TIPO UFFICIO], T2.[RAGGRUPPAMENTO SE ECCEZIONE]
  FROM Tabella1 AS T1, Tabella2 AS T2
 WHERE T1.[CODICE UFFICIO] = T2.[CODICE UFFICIO]
   AND T1.MANSIONE = T2.ECCEZIONE
UNION
SELECT [CODICE UFFICIO], MANSIONE, [TIPO UFFICIO], "?"
  FROM Tabella1
 WHERE [CODICE UFFICIO] NOT IN (SELECT [CODICE UFFICIO] FROM Tabella2);
Alessandro
archimede
Moderatore
 
Post: 2753
Iscritto il: 07/11/02 12:41
Località: Genova

Re:

Postdi wallace&gromit » 10/12/12 15:51

posso intromettermi un attimo?
Per curiosità, come funziona questa parte della query?
archimede ha scritto: AND T1.MANSIONE <> nz(T2.ECCEZIONE, " ")
stato 2014: Office2003/2013 su win7
Avatar utente
wallace&gromit
Utente Senior
 
Post: 1419
Iscritto il: 16/01/12 14:21

Postdi archimede » 10/12/12 16:10

Se T2.ECCEZIONE è null restituisce blank (o qualsiasi stringa metti come secondo parametro), altrimenti restituisce T2.ECCEZIONE: http://office.microsoft.com/en-us/acces ... 28890.aspx

Alessandro
archimede
Moderatore
 
Post: 2753
Iscritto il: 07/11/02 12:41
Località: Genova

Re: Aiuto Query [Access 2007]

Postdi manolo » 10/12/12 17:10

Grazie Ale funziona benissimo..

ora sbatto un po' la testa per fare i report e grafici vari ;)


posso chiederti un'altra cosa?!!?!

adesso devo fare un conteggio rispetto ai codici...

i codici sono del tipo

xxxxxx-xFxxxxx
xxxxxx-xAxxxxx

devo un conteggio dei codici del primo tipo rispetto a tutti i raggruppamenti:

esempio: ho un tot di 6000 xxxx-xFxxxx vorrei fare una torta che questi 6000 mi li divide per tutti i raggruppamenti

i restanti xxxx-xAxxxx me li conta e me li mette in una torta...

poi ci sarà un terzo contatore che mi dice: codice non identificato....Archimedeeee aiutami te :D :D
manolo
Utente Junior
 
Post: 24
Iscritto il: 06/12/12 17:32

Postdi archimede » 10/12/12 18:40

Per favore specifica nomi esatti di campo/i e tabella/e, qualche record di esempio reale e il risultato che da quell'esempio vuoi ottenere.

Alessandro

PS: è buona norma creare una nuova discussione (con un titolo decente - "Aiuto..." NON è un titolo appropriato) invece di mischiare argomenti tra loro non correlati.
archimede
Moderatore
 
Post: 2753
Iscritto il: 07/11/02 12:41
Località: Genova

Re: Aiuto Query [Access 2007]

Postdi manolo » 10/12/12 21:32

praticamente la tabella di partenza è quella ottenuta precedentemente. in questa tabella ci sono altri campi tra cui: codiceCorsoErogato

questi codici sono di 3 tipi:

xxxxx-OFxxxxx
xxxxx-OAxxxxx
xxxxxxxxxxxxxx

dove al posto delle x ci sono varie tipologie di caratteri alfanumerici.
la F e la A in quella posizione stanno ad indicare se il corso erogato sia di Formazione o di Addestramento mentre l'altro con tutte xxxxx sono corsi non classificabile. Quello che praticamente devo fare è creare una maschera dove riporto delle statistiche del tipo:

totale corsi erogato 10000: 5000 di formazione, 4000 addestramento 1000 non classificabili.

inoltre di quei 5000 vorrei sapere a quali raggruppamenti sono stati erogati

quindi con un grafico a torta dove c'è la percentuale/numero preciso di corsi di formazione erogati al raggruppamento A, al raggruppamento B....raggruppamento N

grazie Archimede e scusami per come ho posto la domanda
manolo
Utente Junior
 
Post: 24
Iscritto il: 06/12/12 17:32

Postdi archimede » 11/12/12 00:09

Codice: Seleziona tutto
SELECT COUNT(*) AS TotaleCorsiErogati
  FROM NomeQuery;

Codice: Seleziona tutto
SELECT COUNT(*) AS TotaleCorsiFormazione
  FROM NomeQuery
 WHERE codiceCorsoErogato LIKE "??????OF?????";

Codice: Seleziona tutto
SELECT COUNT(*) AS TotaleCorsiAddestramento
  FROM NomeQuery
 WHERE codiceCorsoErogato LIKE "??????OA?????";

Codice: Seleziona tutto
SELECT COUNT(*) AS TotaleAltriCorsi
  FROM NomeQuery
 WHERE codiceCorsoErogato NOT LIKE "??????OF?????"
   AND codiceCorsoErogato NOT LIKE "??????OA?????";

Codice: Seleziona tutto
SELECT DISTINCT Raggruppamento
  FROM NomeQuery
 WHERE codiceCorsoErogato LIKE "??????OF?????";
HTH.

Alessandro
archimede
Moderatore
 
Post: 2753
Iscritto il: 07/11/02 12:41
Località: Genova

Re: Aiuto Query [Access 2007]

Postdi manolo » 11/12/12 10:52

risolto. grazie mille
manolo
Utente Junior
 
Post: 24
Iscritto il: 06/12/12 17:32


Torna a Applicazioni Office Windows


Topic correlati a "Aiuto Query [Access 2007]":


Chi c’è in linea

Visitano il forum: Nessuno e 7 ospiti