Newsgroup: it.comp.appl.access
Titolo: Problema con Funzione IIF

Ciao a tutti.
Ho una query che mette insieme una tabella (Fornitori), una query
(FatturatiFornitori) e un'altra query (RNC).
Nella query RNC sono indicate tutte le Non Conformità rilevate. Una colonna
di questa query spiega di quale indicatore fa parte la NC. Gli indicatorei
sono: Qualità, Puntualità e Prezzo e nella colonna c'è scritto proprio
Qualità oppure Punutalità oppure Prezzo.
Adesso devo aggiungere un'altra colonna che indichi la percentuale di non
conformità rilevate sull'indicatore Qualità.
Nella mia query ho una colonna che rileva la percentuale generale di Non
Conformità e funziona con le seguenti colonne:
Campo:SommadiDDTCaricati
Tabella: FatturatiFornitori
Formula: Raggruppamento
Campo: IDFornitori
Tabella: RNC
Formula: Conteggio
PercNonConf:: [ConteggioDiIDFornitori]/[Somma Di DDTCaricati]
Tabella: Niente
Formula:Espressione
A me servirebbe:
PercQualità:
IIf([RNC]![Indicatore]=Qualità;[ConteggioDiIDFornitori]/[FatturatiFornitori
Query]![Somma Di DDTCaricati];0)
Tabella: Niente
Formula: Espressione
Però mi dice che è impossibile eseguire una query che non include
l'espressione...specificata come parte di una funzione di aggregazione.
Dipende dal fatto che faccio riferimento ad un'altra colonna della query
(ConteggiodiIDFornitopre)? Ma come faccio a fare diversamente?
Grazie
Stefano

 ha scritto nel messaggio
news:45fe676e$0$812$4faf...@reader5.news.tin.it...

Mando il codice sql. Nei miei svariati tentativi ho assegnato dei valori
numerici agli indicatori. L'indicatore Qualità adesso corrisponde a 1.
Pertanto se trova un valore 1 nella colonna Qualità, deve svolgere
l'operazione.
SELECT Fornitori.IDFornitori, Fornitori.NomeSocietà, Fornitori.IDCategoria,
Fornitori.Note, IIf(Fornitori!Qualità=3 Or Fornitori!Puntualità=3 Or
Fornitori!Prezzo=3,"C",IIf(Fornitori!Qualità=2 Or Fornitori!Puntualità=2 Or
Fornitori!Prezzo=2,"B","A")) AS Globale, Fornitori.Qualità,
Fornitori.Puntualità, Fornitori.Prezzo, [FatturatiFornitori Query].[Somma Di
DDTCaricati], [FatturatiFornitori Query].[Somma Di Fatturato], Count([RNC
Query2].IDFornitori) AS ConteggioDiIDFornitori, Sum([RNC Query2].[Costi di
recupero]) AS [SommaDiCosti di recupero], IIf([RNC
Query2]![Indicatore]=1,([ConteggioDiIDFornitori]/[FatturatiFornitori
Query]![Somma Di DDTCaricati]),0) AS PercQual,
[ConteggioDiIDFornitori]/[Somma Di DDTCaricati] AS PercNCOrd, [SommaDiCosti
di recupero]/[Somma Di Fatturato] AS PercValNC
FROM (Fornitori LEFT JOIN [RNC Query2] ON Fornitori.IDFornitori = [RNC
Query2].IDFornitori) LEFT JOIN [FatturatiFornitori Query] ON
Fornitori.IDFornitori = [FatturatiFornitori Query].IDFornitori
GROUP BY Fornitori.IDFornitori, Fornitori.NomeSocietà,
Fornitori.IDCategoria, Fornitori.Note, Fornitori.Qualità,
Fornitori.Puntualità, Fornitori.Prezzo, [FatturatiFornitori Query].[Somma Di
DDTCaricati], [FatturatiFornitori Query].[Somma Di Fatturato]
ORDER BY Fornitori.NomeSocietà;
Grazie a tutti
Ciao
Stefano

 ha scritto nel messaggio
news:4600eba2$0$17942$4faf...@reader1.news.tin.it...

Ho provato in diversi modi ma non riesco a capire come fare. Addirittura se
io entro nell'editor per generare le espressioni non mi mostra le colonne
della mia query.
E se dipendesse dal fatto che utilizzo una colonna della queri (Conteggio
diIDFornitori) non dovrebbe permettermi neanche l'espressione successiva.
Invece quella me la fa fare.
Ciao a tutti
Stefano