Visualizzare un conteggio anche se è uguale a "0"

di il
19 risposte

19 Risposte - Pagina 2

  • Re: Visualizzare un conteggio anche se è uguale a "0"

    Mifido ha scritto:


    Direi di sì, grazie.
    Comunque, sperando di non approfittarmi della disponibilità altrui, vorrei ribadire qual è il mio obiettivo: avere un prospetto (da usare come base per un report) che restituisca i record che rientrano in un dato intervallo di tempo e che appartengano a 4 Aulss, ottenendo "zero" laddove non ci fossero record.

    Ringrazio ancora, perchè, comunque, sto imparando tanto.
    Allora, riassunto delle puntate: credo che l'uso così "in serie" di query a campi incrociati su altre query a campi incrociati renda sempre più difficile, a lungo andare, raggiungere risultati che normalmente sarebbe abbastanza semplice ottenere. Nella mia testa ho costruito questo ragionamento: la query a campi incrociati rappresenta una "violazione della normalizzazione". Finché viene usata come risultato finale (ad esempio per il classico report) è perfetta. Realizzare una query su una query a campi incrociati è già "un rischio" perché ci si basa su un qualcosa che, come detto prima alla mia maniera, viola la normalizzazione. Costruire query a campi incrociati su query a campi incrociati è sempre peggio. Non chiedermi il consiglio su cosa fare, dovrei risponderti: "rivedi tutte le query, tenendo se proprio serve, quella a campi incrociati solo come ultimo livello per la creazione del report". Risottolineo che questa però è l'idea che mi sono fatto io, magari ha anche qualche fondamento informatico ma espressa così... mi faccio ribrezzo da solo.
  • Re: Visualizzare un conteggio anche se è uguale a "0"

    Pensavo fosse più semplice.
    Prima di ricorrere alle query, avevo usato le funzioni di calcolo disponibili nelle impostazioni dei report, ma senza ottenere molta soddisfazione.
    Leggendo un po' in giro (compresa la guida in linea) e guardando alcuni video tutorial, mi pareva che la scelta corretta fosse proprio il ricorso alle query.
    Northwind non mi aveva chiarito le idee.
    Mi pare strano.
    Grazie lo stesso.
  • Re: Visualizzare un conteggio anche se è uguale a "0"

    Mifido ha scritto:


    Pensavo fosse più semplice.
    Prima di ricorrere alle query, avevo usato le funzioni di calcolo disponibili nelle impostazioni dei report, ma senza ottenere molta soddisfazione.
    Leggendo un po' in giro (compresa la guida in linea) e guardando alcuni video tutorial, mi pareva che la scelta corretta fosse proprio il ricorso alle query.
    Northwind non mi aveva chiarito le idee.
    Mi pare strano.
    Grazie lo stesso.
    Aspetta, forse mi sono espresso male: le query sono fondamentali. E' giusto usare quelle per ottenere poi i risultati che ti servono per generare il report. Il problema che intendevo evidenziare è l'uso "smodato" in serie di query a campi incrociati su query a campi incrociati. Prova a pensare al risultato finale senza dover passare dai vari [prospetti statistici] già creati, come se lo dovessi creare da zero, partendo dalle tabelle base con, al massimo, un paio di query di raggruppamento/conteggio, e solo alla fine arrivare ad una query a campi incrociati.
  • Re: Visualizzare un conteggio anche se è uguale a "0"

    Mifido ha scritto:


    Pensavo fosse più semplice.
    Prima di ricorrere alle query, avevo usato le funzioni di calcolo disponibili nelle impostazioni dei report, ma senza ottenere molta soddisfazione.
    Leggendo un po' in giro (compresa la guida in linea) e guardando alcuni video tutorial, mi pareva che la scelta corretta fosse proprio il ricorso alle query.
    Crea una query vuota, passa direttamente in visualizzazione SQL e incolla questo
    SELECT query1.tuttiutenti As Tutti, nz(query2.contautenti, "0") As NrUtenti, (nz(query2.contautenti, "0") / tuttiutenti)*100 As PercUtenti, query2.aussl As NrAUSSL
    FROM
    	(select count(Utente.AUSSL) As TuttiUtenti from Utente WHERE [Data comunicazione avvio procedimento] Between #9/13/2013# And #9/15/2014#) AS query1, 
    	AUSSL LEFT JOIN (select Utente.AUSSL, COUNT(utente.[Cognome e nome]) AS contautenti from Utente WHERE [Data comunicazione avvio procedimento] Between #9/13/2013# And #9/15/2014# group by Utente.AUSSL) As query2 ON AUSSL.id = query2.AUSSL
    Dovrei aver inserito il nome delle tabelle giuste, in base a quello che avevo visto nelle varie query che avevi pubblicato, altrimenti prova a correggere. Dimmi se il risultato che mostra è accettabile. Se invece dell'id dell'AUSSL vuoi la "descrizione" (che da quanto ho capito è in AUSSL.AUSSL), il primo pezzo di codice dovrebbe essere
    SELECT query1.tuttiutenti As Tutti, nz(query2.contautenti, "0") As NrUtenti, (nz(query2.contautenti, "0") / tuttiutenti)*100 As PercUtenti, AUSSL.AUSSL As NomeAUSLL
    FROM
    	(select... 
    Fammi sapere che son curioso. Se funziona poi ti spiego il ragionamento.
  • Re: Visualizzare un conteggio anche se è uguale a "0"

    Non funziona e dà il seguente messaggio: "Funzione JOIN non supportata".
    A questo punto, ringrazio per la disponibilità e l'impegno dimostrati e chiedo di ignorare la mia domanda.

    Grazie ancora.
Devi accedere o registrarti per scrivere nel forum
19 risposte