Conteggio condizionale

venerdì 20 aprile 2007 - 09.25

liuc Profilo | Junior Member

Ho una tabella (risultato di una vista) di cui riporto in parte la struttura:

IdIncidente Anno IdPersona IdInfrazione Ferito Morto
1 2007 1 5 1 0
1 2007 1 6 1 0
1 2007 2 null 1 0

che rappresenta le persone coinvolte in un incidente con le relative infrazioni commesse.
Nell'esempio in questione la persona 1 ha commesso due infrazioni per l'unico incidente presente. La persone con id=2 non ha commesso infrazioni. Tuttavia entrambe hanno riportato ferite.
ora nel mio report ho bisogno che vengano mostrati i dati nel seguete formato

Anno #incidenti #feriti #morti
2007 1 2 0

come faccio a calcolare il numero di feriti? Ho provato ad inserire un campo formula :
if Ferito=true then 1 else 0 e contare le occorrenze ma ottengo 3 feriti (ovviamente). Come faccio a calcolare tale formula solo sulle persone distinte?

AndreaKpr Profilo | Senior Member

Prova a fare un gruppo sull'anno
poi un gruppo su IDIncidente
a quel punto fai i conteggi

liuc Profilo | Junior Member

Il risultato non cambia.... credo mi sera qualcosa per contare il numero di persone distinte per cui Ferito = 1.

Oppure dovrei provare a raggruppare anche su idpersona... ora provo

AndreaKpr Profilo | Senior Member

Vero, cosi dovrebbe andare.
non so come potrebbe comportarsi cristal per il "null"

freeteo Profilo | Guru

ciao,
hai gia' provato con i campi "sommatoria" ovvero i "Running Total Fields" ? con quel tipo di campi puoi fare dei calcoli slegati dal flusso standard dei dati.

Se non riesci, tieni presente che Crystal tendenzialmente fa casino con i nulli, nelle formule è meglio sempre controllarli con:

if IsNull({campo})....

e assegnare tu il valore 0 nel caso di nullo.
ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

liuc Profilo | Junior Member

Grazie... in effetti provando con i running total fields sono riuscito a calcolare i campi che mi servivano.
Quando però inserisco tali campi in un grafico, la legenda mi mostra delle etichette che vorrei personalizzare ma non riesco a capire come.

Faccio un esempio...uno dei running total field si chiamo NumFeriti.
Nel grafico lo seleziono tra i dati da mostrare ma nelle legenda mi ritrovo una etichetta #NumFeriti. Come posso modificarla?

freeteo Profilo | Guru

ciao,
hai l'ambiete di Visual Studio o proprio Crystal?
1o caso:
non puoi, la massima personalizzazione al grafico le trovi con il tastoDX, magari togliendo il primo flag nella tab generale puoi customizzare dei titoli, ma i valori della legenda quelli dipendono dai valori.Prova magari ad usare un campo formula che ti dia qualcosa di piu' "parlante"

2o caso:
sopra al report fai "tastoDX->Chart analyzer"
ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

liuc Profilo | Junior Member

ahimè ho la versione di CR fornita con Visual studio.
Grazie tante, comunque.
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5