Salve ragazzi, eccomi di nuovo. Sempre alle prese con la sintassi degli iif. Banale, sì, ma per me non ancora...
allora:
ho tre tabelle, ogni record dell'una in rapporto padre-figlio-nipote con uno o più record dell'altra. Si chiamano ts1 (nonno), tr (padre) e tf (figlio). Le tabelle contengono, tra gli altri, campi numerici, che sono quelli su cui la mia query deve fare i calcoli...
Ho quindi una query che seleziona alcuni campi di tutte e tre le tabelle. Devo impostare due IIf annidati.
Ecco cosa vorrei:
il campo (che chiameremo "Impegno") deve restituirmi una somma.
La condizione (per me complessa) che impongo è questa:
SE il campo "fatturapagata" della tabella "tr" è uguale a "NO", la query deve fare un ulteriore controllo:
se il campo "tiporec" della tabella "ts1" è uguale a "S1", deve restituirmi
la differenza tra il valore del campo "is" della tabella padre "tr" e (la somma dei valori numerici del campo "fattimp" della tabella figlia "tf");
se invece se il campo "tiporec" della tabella "ts1" NON è uguale a "S1", mi deve restituire il valore "is" della tabella padre "tr";
SE invece il campo "fatturapagata" della tabella figlia "tf" è uguale a "SI", mi deve restituire il valore 0 (zero).
ho provato e riprovato, ma non ne vuole sapere. La sintassi è sempre errata.
Ecco che cosa ho scritto:
Sum(IIf(([tf].[fattpagata]="No"),IIf(([ts1].[tiporec]="S1"),([tf].[is]-sum([tr].[fattimp])),[tr].[is]),0)) AS Impegno
C'è qualcuno che può dirmi dove sbaglio?
Grazie, ciao.