Come ottenere una query che dia zero invece se non ci sono record che ...

giovedì 23 luglio 2015 - 17.19

Poldone Profilo | Newbie

Salve a tutti.
Ho creato una query che mi restituisca i record che soddisfano determinati criteri, ma avrei bisogno che mi restituisse "0" quando se non ci fossero record.
Di seguito, riporto la query:

SELECT [Prospetto statistico - 13].[Data comunicazione avvio procedimento], *
FROM [Prospetto statistico - 13]
WHERE ((([Prospetto statistico - 13].[Data comunicazione avvio procedimento]) Between #9/15/2014# And #9/15/2015#) AND (([Prospetto statistico - 13].AUSSL)="AUSSL 10"));

Mi potete aiutare?
Sono un principiante assoluto.

Grazie.

renarig Profilo | Expert

>SELECT
>[Prospetto statistico - 13].[Data comunicazione avvio procedimento],
>*
>FROM
>[Prospetto statistico - 13]
>WHERE
>(
>(([Prospetto statistico - 13].[Data comunicazione avvio procedimento]) Between #9/15/2014# And #9/15/2015#)
>AND
>(([Prospetto statistico - 13].AUSSL)="AUSSL 10")
>)
>;


Non è chiarissimo quello che vuoi ottenere:
Ho rimesso la tua query un po in ordine visivo e vedo che hai selezionato tutti i campi della tabella ( hai messo l'asterisco )
pertanto ti chiedo:
Su quale dei tanti campi vorresti lo zero ???

Forse è meglio mettere una finestra di messaggio che fa il DCount(.......; .......; ........)
e se non ci sono record avverte l'utente

Facci sapere

.

Poldone Profilo | Newbie

Vorrei che lo zero comparisse in tutti i campi della query, ma se comparisse solo nel campo della Aulss mi andrebbe bene lo stesso.
Non credo che mi serva una finestra di avviso che compare quando non ci sono record, perché, alla fine di tutto, mi occorre avere un dato sul quale costruire delle statistiche (e un report) e, nel caso non ci fossero record che rispondono a determinati criteri, poter scrivere che il numero di record è zero per una certa Aulss (nel caso in questione la Aulss 10).
Vorrei essere stato più chiaro.

Grazie infinite!


renarig Profilo | Expert

Mmmhh !!!
La vedo dura ......
Non tanto per la query ( che si puo sempre fare ) ma per il processo complessivo
che non ho ancora capito bene,

Fare delle statistiche .... ma tu nel campo "AUSSL"
che immagino sia ancora il campo "Aulss" che citi nel 2° post
avresti alternativamente un testo oppure un numero zero ........


comunque solo a livello didattico riduciamo il problema a:
Ho una query con criteri che mi può restituire record oppure No
Nel caso non mi restituisse nulla allora voglio un unico record con 0 in tutti i campi


Ho ripreso e "stilizzato" i nomi dei tuoi campi che sono veramente difficili
quindi se hai una tabella di nome "PS13" (Prospetto statistico - 13)
con i campi:
"DCAP" -- DataOra (Data comunicazione avvio procedimento)
"AUSSL" -- Testo
"C3" ------ Testo
"C4" ------ Testo

Applichi la query sotto e arrivi al risultato

Facci sapere
.
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Poldone Profilo | Newbie

Ho provato a seguire le istruzioni che, gentilmente, mi hai dato, ma compare un messaggio che dice "Il modulo di gestione [...] non è riuscito a trovare l'oggetto [...]".
Boh...
Ci riproverò a mente più fresca.
Mi rendo conto che l'uso di Access implica, presto o tardi, l'apprendimento di SQL, perché le funzioni automatiche non consentono di spaziare come si vuole (secondo me).
Grazie comunque.

Poldone Profilo | Newbie

No, non funziona.
Grazie lo stesso.

renarig Profilo | Expert

>No, non funziona.
Si hai ragione

Nella query che ho postato c'è scritto erroneamente 2 volte :
........ ("*","Q1","((PS13 .........

Sostituiscila entrambe le volte con
........ ("*","PS13","((PS13 .........


Questo solo per fare la ultima riga di Zeri come hai richiesto .....

Ma ti ripeto, ritengo che il tuo problema non sia quello

Allego Demo

Facci sapere


Poldone Profilo | Newbie

Ringrazio per la correzione, intanto.

Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5