PDA

View Full Version : [SQL] access raggruppare valori sulle colonne


Lorenzoz
29-05-2014, 15:46
Un saluto a tutti (probabilmente il titolo sarà una castroneria, ma non sapevo come spiegarmi).
ho un problema che le mie scarse competenze di access non mi permettono di risolvere (sempre che sia possibile).

Dunque, spero di riuscire a spiegarmi bene, in una tabella ho i dati così organizzati:

val1|val2|val3|tipo
123 |6 |0 |visita
123 |6 |0 |esame
123 |7 |1 |visita
456 |6 |2 |visita
456 |6 |0 |strumentale
890 |11 |0 |visita

...e via così

La chiave di questa tabella è val1+val2+val3.
Il mio problema è che vorrei riuscire ad ottenere un risultato simile
val1|conteggio_visite|conteggio_esami|conteggio_strumentali
123 |2 |1 |0
456 |1 |0 |1
890 |1 |0 |0

vorrei quindi, raggruppati i dati per val1, contare i base al tipo.
sapreste aiutarmi?
ho ottenuto i giusti conteggi raggruppando per tipo, a quel punto i conteggi sono semplici, tuttavia per motivi di organizzazione devo mostrare un val1 su una singola riga. :muro: :muro:

Come detto non conosco access e con l'sql che ho studiato all'università non ho mai avuto problemi di presentazione dei dati di questo tipo. :doh: :doh:

Daniels118
30-05-2014, 14:38
Puoi fare in questo modo:
SELECT
val1,
SUM(IIF([tipo] = "visita", 1, 0) AS conteggio_visite,
SUM(IIF([tipo] = "esame", 1, 0) AS conteggio_esami,
SUM(IIF([tipo] = "strumentale", 1, 0) AS conteggio_esami
FROM tabella
GROUP BY val1

Lorenzoz
30-05-2014, 20:14
Puoi fare in questo modo:
SELECT
val1,
SUM(IIF([tipo] = "visita", 1, 0) AS conteggio_visite,
SUM(IIF([tipo] = "esame", 1, 0) AS conteggio_esami,
SUM(IIF([tipo] = "strumentale", 1, 0) AS conteggio_esami
FROM tabella
GROUP BY val1

Ti ringrazio!! Appena riesco provo e vedo se riesco a costruirlo. :)

Aggiorno con il risultato.

Grazie ancora, buon fine settimana!

Lorenzoz
03-06-2014, 09:56
Ok, sono riuscito ad ottenere quello che volevo! :D :D
Solo un appunto, su cui ho battuto la testa per 5 minuti prima di arrivarci.
Nell'espressione

SUM(IIF([tipo] = "visita", 1, 0) AS conteggio_visite

access vuole l'uso di ; invece di ,. Diventa quindi:

SUM(IIF([tipo] = "visita"; 1; 0) AS conteggio_visite

forse dipende dalla localizzazione italiana?

Grazie ancora!!
:yeah: :yeah:

Daniels118
03-06-2014, 10:02
Credo che tutti i prodotti microsoft si adeguino alle impostazioni di sistema, in questo caso si tratta del separatore di elenco, se vuoi verificare puoi modificarlo dal pannello di controllo, nelle impostazioni internazionali.