Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Conteggi in Access

Hai problemi con i file Zip, vuoi formattare l'HD, non sai come funziona FireFox? O magari ti serve proprio quel programmino di cui non ricordi il nome! Ecco il forum dove poter risolvere i tuoi problemi.

Moderatori: Dylan666, hydra, gahan

Conteggi in Access

Postdi cassioli » 05/10/04 11:01

Ho una tabella a due campi: PROCESSO e STATO; PROCESSO puo' avere un qualunque valore, STATO puo' essere solo INIZATO, IN CORSO e FINITO:

PROC1 IN CORSO
PROC2 IN CORSO
PROC3 FINITO
PROC4 INIZIATO
PROC5 FINITO

sto cercando di ottenere una tabella che mostra il conteggio degli stati, tipo cosi':

INIZIATO IN CORSO FINITO
1 2 2

Ma... come cavolo faccio?!? :D
Hi creato una query che restituisce il numero degli "INIZIATO", una per gli "IN CORSO" e una per i "FINITO".
ORa pero' vorrei ficcare tutto in un unica tabella, o report, o query, o qualcosa. In teoria e' facile, basta fare l'autocomposizione e specificare come "tabelle" di origine le query... ma il risultato finale, benche' autocomposto, da' un errore nella funzione JOIN.

Il risultato finale, ad esempio, e' questo: (un report che dovrebbe mostrare due campi-comteggio)

Codice: Seleziona tutto
SELECT DISTINCTROW qryElenco_FINITO.ConteggioDiid, qryElenco_INIZIATO.ConteggioDiid FROM (Defect INNER JOIN qryElenco_INIZIATO ON Defect.state = qryElenco_INIZIATO.name) INNER JOIN qryElenco_FINITO ON Defect.state = qryElenco_FINITO.name;


...chi ci capisce qualcosa, in questo SQL-bordello??? :eeh:

Come altro potrei fare per visualizzare tutti insieme i risultati di piu' query?
cassioli
Utente Senior
 
Post: 1014
Iscritto il: 05/03/04 11:02

Sponsor
 

Postdi pjfry » 05/10/04 11:04

in SQL (spero non solo in oracle :undecided: ) :
Codice: Seleziona tutto
select stato, count(*) from tabella [b]group by[/b] stato
Avatar utente
pjfry
Moderatore
 
Post: 8240
Iscritto il: 19/11/02 17:52
Località: terni

Postdi cassioli » 05/10/04 11:24

pjfry ha scritto:in SQL (spero non solo in oracle :undecided: ) :
Codice: Seleziona tutto
select stato, count(*) from tabella [b]group by[/b] stato

Perfetto, ho fatto una domanda cosi' complicata che... non so come usare la risposta! :lol:
cassioli
Utente Senior
 
Post: 1014
Iscritto il: 05/03/04 11:02

Postdi pjfry » 05/10/04 11:30

ovviamente i (b) nella query derivano dalla mia idiozia di voler usare il neretto nel code :D :aaah
select stato, count(*) from tabella group by stato
volevo evidenziare la parola chiave group by....
è una query sql, funziona sicuramente su oracle ma penso sia piuttosto standard... però non avendo mai usato access non so dove puoi andarla ad infilare :D
il risultato sarebbero 3 righe:
Codice: Seleziona tutto
iniziato  1
in corso  2
finito    2
Avatar utente
pjfry
Moderatore
 
Post: 8240
Iscritto il: 19/11/02 17:52
Località: terni

Postdi cassioli » 05/10/04 12:20

E, invece, una risposta che implichi l'uso del mouse al posto della tastiera?... :oops:
cassioli
Utente Senior
 
Post: 1014
Iscritto il: 05/03/04 11:02

Postdi archimede » 05/10/04 12:40

cassioli ha scritto:E, invece, una risposta che implichi l'uso del mouse al posto della tastiera?... :oops:
Copia e incolla il codice di pjfry in una query! :P :P

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

Postdi archimede » 05/10/04 12:42

archimede ha scritto:
cassioli ha scritto:E, invece, una risposta che implichi l'uso del mouse al posto della tastiera?... :oops:
Copia e incolla il codice di pjfry in una query! :P :P

Alessandro
Ah, no. Non funziona: devi comunque usare la tastiera per correggere il nome della tabella.

Sfiga.

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

Postdi cassioli » 05/10/04 12:48

archimede ha scritto:
cassioli ha scritto:E, invece, una risposta che implichi l'uso del mouse al posto della tastiera?... :oops:
Copia e incolla il codice di pjfry in una query! :P :P

Alessandro

Non funzionera'... :roll:
cassioli
Utente Senior
 
Post: 1014
Iscritto il: 05/03/04 11:02

Postdi cassioli » 05/10/04 12:58

Toh... funziona! :oops:
Bello, con l'autocomposizione era venuta un'istruzione SQL lunga un chilometro e non funzionava una mazza... e invece "a mano", con du' righette,... ZAC! :D

Grazie, ma....
il mio capoccia ha deciso di farmi impazzire: vuole che nell'elenco compaiano anche gli stati con conteggio pari a 0! :eeh:
cassioli
Utente Senior
 
Post: 1014
Iscritto il: 05/03/04 11:02

Postdi cassioli » 05/10/04 13:03

P.S.
Se poi mi spieghi anche [b]come funziona[/b 'sta rba... :D
Allora, SELECT prende i dati da TABELLA, e conta quante ripetizioni ci sono in ogni RAGGRUPPAMENTO (group by) per STATO... ma il primo STATO che vuol dire?
Senza contare che, una volta messa in ACCESS, quest'istruzione si e' trasfromata in:

Codice: Seleziona tutto
SELECT stato AS Espr1 , Count(*) AS Espr2
FROM tabella
GROUP BY stato;


EH?!? :eeh: CHe cavolo sono Espr1 e Espr2???
cassioli
Utente Senior
 
Post: 1014
Iscritto il: 05/03/04 11:02

Postdi archimede » 05/10/04 13:45

cassioli ha scritto:Grazie, ma....
il mio capoccia ha deciso di farmi impazzire: vuole che nell'elenco compaiano anche gli stati con conteggio pari a 0! :eeh:
Prego (da parte di pjfry, direi), ma....
se ci dici come sono fatte esattamente le tabelle coinvolte risparmiamo tempo tutti quanti... ;)
cassioli ha scritto:Senza contare che, una volta messa in ACCESS, quest'istruzione si e' trasfromata in:

Codice:

SELECT stato AS Espr1 , Count(*) AS Espr2
FROM tabella
GROUP BY stato;
Ma la tua tabella si chiama tabella? E i nomi dei campi?

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

Postdi cassioli » 05/10/04 14:01

archimede ha scritto:
cassioli ha scritto:Grazie, ma....
il mio capoccia ha deciso di farmi impazzire: vuole che nell'elenco compaiano anche gli stati con conteggio pari a 0! :eeh:
Prego (da parte di pjfry, direi), ma....
se ci dici come sono fatte esattamente le tabelle coinvolte risparmiamo tempo tutti quanti... ;)
cassioli ha scritto:Senza contare che, una volta messa in ACCESS, quest'istruzione si e' trasfromata in:

Codice:

SELECT stato AS Espr1 , Count(*) AS Espr2
FROM tabella
GROUP BY stato;
Ma la tua tabella si chiama tabella? E i nomi dei campi?

Non sono affari vostri... :P ...o, piu' educatamente, non posso divulgare dati precisi sui documenti aziendali. Cmq, la query funziona benissimo (ho anche scoperto che Espr1 e Espr2 sono i nomi delle colonne risultanti);resta solo da capire come (se si puo') fare per visualizzare anche i conteggi nulli.
cassioli
Utente Senior
 
Post: 1014
Iscritto il: 05/03/04 11:02

Postdi archimede » 05/10/04 14:10

cassioli ha scritto:resta solo da capire come (se si puo') fare per visualizzare anche i conteggi nulli.
Si può, ma se non puoi divulgare la struttura delle tabelle dovrai arrangiarti :P ...o, più educatamente, la spiegazione rischia di diventare più complicata del necessario. Se proprio avete il copyright sulla struttura dei dati, creati delle tabelle con nomi fittizi e lavoriamo su quelle.

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

Postdi cassioli » 05/10/04 15:36

archimede ha scritto:
cassioli ha scritto:resta solo da capire come (se si puo') fare per visualizzare anche i conteggi nulli.
Si può, ma se non puoi divulgare la struttura delle tabelle dovrai arrangiarti :P ...o, più educatamente, la spiegazione rischia di diventare più complicata del necessario. Se proprio avete il copyright sulla struttura dei dati, creati delle tabelle con nomi fittizi e lavoriamo su quelle.

Alessandro

Beh... e' quello che ho fatto! La tabella si chiama TABELLA, lo stato si chiama STATO :D , e l'istruzione SQL funziona gia' cosi'; pero', non mi elenca i processi conteggiati a 0.
Cioe', se ho 3 processi in INIZIATO, 2 in FINITO e zero in IN CORSO, la tabella mostra solo
INIZIATO 3
FINITO 2

Mi serve di sapere anche quali sono gli altri stati possibili, cioe' quelli a zero.
cassioli
Utente Senior
 
Post: 1014
Iscritto il: 05/03/04 11:02

Postdi archimede » 05/10/04 16:02

cassioli ha scritto:
archimede ha scritto:
cassioli ha scritto:resta solo da capire come (se si puo') fare per visualizzare anche i conteggi nulli.
Si può, ma se non puoi divulgare la struttura delle tabelle dovrai arrangiarti :P ...o, più educatamente, la spiegazione rischia di diventare più complicata del necessario. Se proprio avete il copyright sulla struttura dei dati, creati delle tabelle con nomi fittizi e lavoriamo su quelle.

Alessandro

Beh... e' quello che ho fatto! La tabella si chiama TABELLA, lo stato si chiama STATO :D , e l'istruzione SQL funziona gia' cosi'; pero', non mi elenca i processi conteggiati a 0.
Cioe', se ho 3 processi in INIZIATO, 2 in FINITO e zero in IN CORSO, la tabella mostra solo
INIZIATO 3
FINITO 2

Mi serve di sapere anche quali sono gli altri stati possibili, cioe' quelli a zero.
Ma Access come fa a sapere quali sono gli altri stati possibili? Hai una tabella STATI? Perchè altrimenti domani il tuo capoccia si sveglia e decide di gestire anche lo stato, che so?, INTERROTTO e tu devi mettere le mani in n posti diversi per accontentarlo.

E allora supponiamo:

Tabella Tabella
PROCESSO IDSTATO
Proc1 1
Proc2 1
Proc3 1
Proc4 3
Proc5 3

Tabella Stati
IDSTATO DESCRIZIONE
1 INIZIATO
2 IN CORSO
3 FINITO

Query:
Codice: Seleziona tutto
SELECT Descrizione, (SELECT COUNT(*) FROM Tabella WHERE Tabella.IDStato = Stati.IDStato;) AS Conto
FROM Stati;
HTH.

Alessandro

PS: Intendiamoci, puoi anche farlo senza tabella d'appoggio (credo), ma così mi sembra meglio assai.
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova


Torna a Software Windows


Topic correlati a "Conteggi in Access":


Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti