Conteggio valori "specifici"

Utilizzo dei portali in un database FileMaker

Moderatore: Moderatori

Rispondi
Avatar utente
mik78
Messaggi: 216
Iscritto il: mercoledì 5 giugno 2013, 9:34
Località: Avellino

Conteggio valori "specifici"

Messaggio da mik78 » sabato 14 settembre 2013, 21:00

Ciao a tutti,
ho questo problemino:

In un Formato lista visualizzo l'elenco dei consulenti;
Per ogni consulente ho un portale con i relativi contratti stipulati;
Il suddetto portale ha 2 campi: CodContratto, EsitoContratto;
I contratti possono avere due esiti: Pagabile, Respinto;
Di fianco al Portale vorrei mettere i seguenti tre controlli:

1) Totale_Contratti (qui nessun problema in quanto è sufficiente un semplice Conteggio(Contratti::CodContratto);

2) Totale_Contratti_Pagabili;
3) Totale_Contratti_Respinti;
Il problema sorge proprio per questi due.
Non riesco a dirgli che deve contare nel portale del consulente
solo gli esiti "Pagabile" o "Respinto".

NB: è una scappatoia per la Pubblicazione Web (quindi addio riassunti etc..)
NB2: SQL non ne vuole sapere di fare i conti nel portale. Ho tentato in mille modi.. ma niente da fare.

Mi sono bloccato proprio a 1 mt dal traguardo... :lol:
Qualche idea baldi giovani?? :roll:
Grazie infinite in anticipo...

stregatto
Messaggi: 9700
Iscritto il: lunedì 1 dicembre 2003, 1:00
Località: Roma
Contatta:

Re: Conteggio valori "specifici"

Messaggio da stregatto » sabato 14 settembre 2013, 23:06

con il 12 puoi usare un calcolato con esegui sql. qualcosa come

Eseguisql(
count(*) from nometuatabellacontratti where esitocontratto=? and idconsulente=?;
"";"";
"pagabile"; tuoidconsulente)

oppure crei un calcolato con risultato 1 se pagabile e 0 in caso contrario e un altro calcolato con risultato 1 se respinto e 0 in caso contrario e sommi quelli.

.g.

Avatar utente
mik78
Messaggi: 216
Iscritto il: mercoledì 5 giugno 2013, 9:34
Località: Avellino

Re: Conteggio valori "specifici"

Messaggio da mik78 » domenica 15 settembre 2013, 15:54

Ciao Stregatto,
il tuo aiuto è stato preziosissimo.. :mrgreen:

Pur avendo già creato molti calcolati con l'EseguiSQL,
leggendo il tuo suggerimento mi sono reso conto che
FM voleva semplicemente la sintassi corretta..
benché questa, in TEORIA era giusta.

Infatti mi ostinavo a scrivere
EseguiSQL("SELECT COUNT(*) FROM TabellaContratti WHERE EsitoContratto = 'Pagabile' AND IdConsulente = MiaTabellaConsulenti::Id";"";"")
il chè e ben diverso da
EseguiSQL("SELECT COUNT(*) FROM TabellaContratti WHERE EsitoContratto = 'Pagabile' AND IdConsulente = ?";"";"";MiaTabellaConsulenti::Id)

Ora funzia alla grande.. :P

Grazie 10000000000000000000000000

stregatto
Messaggi: 9700
Iscritto il: lunedì 1 dicembre 2003, 1:00
Località: Roma
Contatta:

Re: Conteggio valori "specifici"

Messaggio da stregatto » domenica 15 settembre 2013, 20:17

EseguiSQL("SELECT COUNT(*) FROM TabellaContratti WHERE EsitoContratto = 'Pagabile' AND IdConsulente = MiaTabellaConsulenti::Id";"";"")

al limite:

EseguiSQL("SELECT COUNT(*) FROM TabellaContratti WHERE EsitoContratto = 'Pagabile' AND IdConsulente ="& MiaTabellaConsulenti::Id;"";"")

ma è sempre meglio usare i ?.

.g.

Avatar utente
mik78
Messaggi: 216
Iscritto il: mercoledì 5 giugno 2013, 9:34
Località: Avellino

Re: Conteggio valori "specifici"

Messaggio da mik78 » mercoledì 18 settembre 2013, 17:50

Anche la soluzione "al limite" è interessante..

Ma il ? credo che sia la soluzione migliore
soprattutto in presenza di più variabili.
Rende il codice più ordinato e visivamente di facile lettura.

grazie ancora :idea:

Rispondi