Newsgroup: it.comp.appl.access
Titolo: Legame Padre-Figlio

Ho letto attentamente i post Vba: Alberi e visite ricorsive ed ho trovato un
caso analogo al mio che ha coinvolto Ringo. Il mio caso è questo:
Questo problema credo sia abbastanza complesso. Vi chiedo di consigliarmi e
darmi una mano. Devo calcolare la produzione del gruppo di rappresentanti
sul territorio regionale. Ho un responsabile regionale ed altri responsabili
provinciali e locali. Fin qui niente di difficile; le difficoltà nascono dal
fatto che il resposabile regionale oltre che a guadagnare in percentuale sul
fatturato prodotto guadagna in parte anche sul fatturato prodotto dalle
persone di cui ha la responsabilità(responsabili provinciali e locali) e
così lo stesso per gli altri.Vi faccio questo esempio:
Rappresentante                            Capo
Verde                                         Rosso
Giallo                                         Rosso
Marrone                                     Rosso
Viola                                           Marrone
Arancio                                         Marrone
Bianco                                         Arancio
Nero                                             Bianco
Azzurro                                         Giallo
Grigio                                             Verde
Rosso                                             Rosso
In sostanza tutte queste persone producono pero' io vorrei trovare il modo
di aggregare la loro produzione. Nell'esempio sopra per
Rosso:  somma di tutti i fatturati
Marrone: somma dei fatturati di Marrone, Viola, Arancio, Bianco, Nero
Verde: somma dei fatturati Verde, Grigio
Giallo:    somma dei fatturati Giallo, Azzurro
Arancio:  somma dei fatturati Arancio, Bianco, Nero
Bianco: somma dei fatturati Bianco, Nero
Nero: somma dei fatturati Nero
Viola: somma dei fatturati di Viola
Grigio: somma dei fatturati di Grigio
Poi sui fatturati sarebbe facile calcolare per moltiplicazione le
provvigioni ottenute.
Grazie al file Grafi Excel di Fernando Cinquegrani è possibile visualizzare
graficamente l'organzizzazione ad albero degli agenti, ma non so come
risolvere il problema in access per quanto riguarda il calcolo dei
fatturati. Ho due tabelle; una in cui ci sono i dati dei singoli agenti con
un campo in cui è indicato il loro superiore ed un'altra tabella in cui
vengono raccolti i dati della produzione per singolo agente. Devo
strutturarle diversamente?
Mi chiedevo come posso migliorare l'organizzazione delle tabelle e come
intervenire. Ho conoscenze pari quasi a 0 di VBA.
Accetto ogni tipo di consiglio. Grazie per l'aiuto


dlin! dlon! secondo avviso! il tuo caso e' "identico" a quello di ringo! 
Le tue tabelle sono anch'esse "identiche" a quelle di ringo
 
Quel codice e' in grado di gestire il "tuo" problema ovviamente la query
sara' diversa (ma manco tanto). 
Hai letto anche il secondo post come ti avevo suggerito sull'altro NG?
In tal secondo post c'e' spiegato "oscuramente" cosa fa quel codice.
Sei in grado di scrivere una query e definire un recordset?
--
a.cara 
Togli qualcosa dall'email

 ha scritto nel messaggio
news:3E7DF872...@blunet.it...


 ma sono un principiante con un problema da professionista.
uffi!
1) In questo NG vige la regola di rispondere dopo il messaggio o parte
del
   messaggio. Cerca di adeguarti
2) E' regola tagliare [cut] dal messaggio originale cio' che non e'
utile
   (in questo caso ho tagliato tutto perche' hai risposto prima del
   messaggio originale  e mi faceva confusione)
3) E' regola postare con un soggetto significativo (questo lo hai fatto)
4) Cerca di spiegare cosa ti serve di preciso, no questo no e'
chiarissimo
   quello che ti serve, o cosa non hai capito o cosa non sai fare.
   Quei post contenevano una "cifra" di indicazioni. Anzi contenevano
l'intera
   soluzione del problema
5) cmq tanto per cominciare posta, sostituendo all'arcobaleno, la
struttura
   delle tue tabelle con i nomi campo corretti.
6) Anche tu devi applicare la percentuale provvigionale? e se si e'
variabile
   (cioe' "personalizzata") o fissa per ciascun livello gerarchico?
7) Eventualmente riposta su questo 3d, dai precedenti 3d, il codice o
pezzi 
   dello stesso che possono essere utili alla discussione


    soluzione del problema
Chiedo scusa, proverò ad adeguarmi. Credo tu abbia individuato il problema.
Ora quello che volevo sapere per cominicare era proprio come organizzare
strutturalmente al meglio le mie tabelle. Io ne ho una dal nome
"collaboratori" in cui ho tra gli altri un campo:1) IDCollaboratore
(numerico)
                2) Cognome
                3) Nome
                4)dati vari non utili a queste finalità
                5)Superiore (SELECT [Collaboratori].[IDCollaboratore],
[Cognome] & " " & [Nome] AS Nominativo FROM Collaboratori ORDER BY
[Collaboratori].[Cognome], [Collaboratori].[Nome]; )
Questa potrebbe essere assimilata alla tabella venditori + tabella legami di
Ringo?
Cioè ho il collaboratore ed il suo superiore (Padre-Figlio) giusto?
Ho un'altra tabella dal nome "elenco conclusioni" con i campi:
            1) IdProposta (numerico)
            2) Dataproposta
            3) IDCollaboratore (SELECT DISTINCTROW
[Collaboratori].[IDCollaboratore], [Cognome] & " " & [Nome] AS Nominativo
FROM Collaboratori WHERE ((Not ([Collaboratori].[Codice di
Collaborazione])="0 ")) ORDER BY [Collaboratori].[Cognome],
[Collaboratori].[Nome];)
            4)fatturatoprodotto1
            5)fatturatoprodotto2
            6)stornofatturato
N.B. Il fatturato viene indicato come punteggio (esempio 26) e le
provvigioni sono un valore fisso per ciascun livello gerarchico. Esempio(
5,00? *26=130,00?). Se un collaboratore è al livello 12 (10,00?) per es. ed
un suo diretto(figlio) è al livello 9 (7,00? ) lui guadagnerà
10,00?*fatturatoprodotto1(sulla sua produzione personale) ed
(10,00?-7,00?)*fatturatoprodotto1 della produzione del suo (figlio) sommata
a quella di tutti i figli del suo figlio. Spero di essere stato chiaro.
La domanda è questa: potrebbe essere una soluzione quella di creare una
tabella in cui ho le colonne con i livelli gerarchici (1,2,3,4 ec.)e nella
riga gli euro di provvigione per quel livello? Inoltre potrebbe essere
intelligente nella tabella "elenco conclusioni" inserire una colonna
nominata livello in cui indicare il livello gerarchico di chi ha concluso
l'affare?
Esempio: IDCollaboratore: Rosso
                Fatturatoprodotto1:    26
                Fatturatoprodotto2:    0            <---------N.B. se
fatturatoprodott1 è diverso da zero fatturatoprodotto2=0
                Stornofatturato    :    0               <-----N.B.
stornofatturato <>0 solo se fatturatoprodotto1 e 2=0
                Livello:                12                   <------(livello
provvigionale 10,00?)
                IDCollaboratore: verde
                Fatturatoprodotto1:    10
                Fatturatoprodotto2:    0
                Stornofatturato    :    0
                Livello:                10            <-------(livello
provvigionale 7,00?)
                IDCollaboratore: Giallo
                Fatturatoprodotto1:    12
                Fatturatoprodotto2:    0
                Stornofatturato    :    0
                Livello:                6            <--------(livello
provvigionale 5,00?)
Legami:     Superiore        Collaboratore
                  0                       Rosso
                Rosso                verde
                Verde                Giallo
In sostanza in questo esempio io vorrei ottenere per Rosso il valore
fatturatoprodotto1=(26+10+12)=48 e le provvigioni pari a 26*10,00?=260,00? +
(10+12)*(10,00?-7,00?)=66,00?. Totale 326,00?
Per Giallo invece sarebbe (12*5,00?)=60,00?
Non so se sono stato chiaro. Spero di si
Grazie comunque dell'aiuto.


Riepilogo
Collaboratori: idcollaboratore, cognome, nome, superiore
Elenco Conclusioni: idcollaboratore, fatturatoprodotto1
questa e' la select che serve  (chiamiamola Q_Fatt)
++++++++++++++++++++++++++++++++++
SELECT [collaboratori].idcollaboratore, 
	[Collaboratori].[IDCollaboratore], [Collaboratori].[Cognome] & " " &
[Collaboratori].[Nome] AS Nominativo,
	[collaboratori].superiore,
	 Sum([Elenco Conclusioni].fatturatoprodotto1) AS Fatturato
FROM Collaboratori LEFT JOIN [Elenco Conclusioni] ON
[collaboratori].idcollaboratore =
[Elenco Conclusioni].idcollaboratore
where [collaboratori].idcollaboratore <> 0
GROUP BY [collaboratori].idcollaboratore, [Collaboratori].[Cognome] & " " &
[Collaboratori].[Nome] , [collaboratori].superiore,
ORDER BY [Collaboratori].[Cognome], [Collaboratori].[Nome]
+++++++++++++++++++++++++++++++++++
probabilmente dovresti avere necessita' di gestire temporalmente i fatturati
e quindi sulla where prima o poi dovrebbe essere indicata una richiesta
di intervallo tempo. A che servono fatturatoprodotto2 e stornofatturato?
vanno inclusi nel calcolo?

su questa storia delle percentuali non ho capito nulla. Poco importa e'
un fatto che si puo' tranquillamente posporre. Cmq 
I vari livelli che percentuali hanno? una cos semplice del tipo:
liv1 = x,y
liv2 = z,w
liv3 = ....etc
e quanti sono al massimo
ora il codice
-----------------------------------
modulo di classe di nome "clsTree"
-----------------------------------
Option Compare Database
Option Explicit
Dim Properties As New Collection
Private Sub Class_Initialize()
Properties.Add "", "Key"
Properties.Add "", "Nominativo"
Properties.Add 0, "Value"
End Sub
Property Get Count() As Long
    Count = Properties.Count
End Property
Property Get Key() As Variant
    Key = Properties("Key")
End Property
Property Let Key(pValue As Variant)
    Properties.Remove "Key"
    Properties.Add pValue, "Key"
End Property
Property Get Nominativo() As Variant
    Key = Properties("Key")
End Property
Property Let Nominativo(pValue As Variant)
    Properties.Remove "Nominativo"
    Properties.Add pValue, "Nominativo"
End Property
Property Get Value() As Variant
    Value = Properties("Value")
End Property
Property Let Value(pValue As Variant)
    Properties.Remove "Value"
    Properties.Add pValue, "Value"
End Property
Function Store(pKey As String, pImporto As Long, pAnag)
    Value = pImporto
    Key = pKey
    Nominativo = pAnag
End Function
Function Evaluate(pLevel As Long, pFatt As Variant) As Long
Dim oTree As clsTree
Dim iFor As Long
Dim iLv As Long
iLv = pLevel + 1
For iFor = 4 To Properties.Count
    Set oTree = Properties(iFor)
    oTree.Evaluate iLv, pFatt
Next
pFatt(iLv) = pFatt(iLv) + Value
Evaluate = iLv
End Function
comincia a sistemare questo, sopratutto la query, provala e osserva il
risultato.
ora ho da fare. il seguito piu' tardi


 vanno inclusi nel calcolo?
Ho creato la Query di selezione apportando alcune leggerissime modifiche al
codice
+++++++++++++++++++++++++++++++++++++++
SELECT Collaboratori.IDCollaboratore, Collaboratori.IDCollaboratore,
[Collaboratori].[Cognome] & " " & [Collaboratori].[Nome] AS Nominativo,
Collaboratori.Superiore, Sum([Elenco Conclusioni].fatturatoprodotto1) AS
Fatturato1, Sum([Elenco Conclusioni].fatturatoprodotto2) AS Fatturato2,
Sum([Elenco Conclusioni].stornofatturato) AS StornoFatturato FROM
Collaboratori LEFT JOIN [Elenco Conclusioni] ON
Collaboratori.IDCollaboratore = [Elenco Conclusioni].IDCollaboratore
WHERE (((Collaboratori.[Codice di Collaborazione])<>"0 "))
GROUP BY Collaboratori.IDCollaboratore, [Collaboratori].[Cognome] & " " &
[Collaboratori].[Nome], Collaboratori.Superiore;
++++++++++++++++++++++++++++++++++++++++
Io ho necessità di aggregare questi dati temporalmente per (storico;
annuale; trimestrale; mensile). Qual'è il modo migliore e più semplice per
farlo? Creare quattro query, una per ogni periodo temporale oppure creare
una maschera in cui inserire l'intervallo tempo su cui analizzare i dati?
Nel secondo caso non so come muovermi quindi ti chiedo una mano.
Come avrai visto ho sommato sia fatturatoprodotto1, sia fatturatoprodotto2,
sia stornofatturato. Ho bisogno per questi dati sia della somma presi
singolarmente (cosa che ho già creato nella query) ma anche del subtotale
(fatturatoprodotto1+fatturatoprodotto2). Lo stornofatturato va anche incluso
nel calcolo ma singolarmente.
Riepilogo somma fatturatoprodotto1
                somma fatturatoprodotto2
                subtotale (fatturatoprodotto1+fatturatoprodotto2)
                somma stornofatturato
Per quanta riguarda le provvigioni ed i livelli meglio vederli in seguito;
già avere i dati aggregati per struttura e gestiti temporalmente è un primo
grosso risultato.
N.B. la query in oggetto visualizza due colonne IDcollaboratore; è normale?
Io ho anche un'altra tabella dal nome "Dati settimanali" nella quale ho i
dati relativi al lavoro svolto (es. appuntamenti fatti/ contratti conclusi
ecc.). Io dovrei aggregare anche questi dati per gruppo in maniera da poter
effettuare delle ricerche statistiche. La tabella, è così composta
1) IDCollaboratore   :SELECT DISTINCTROW [Collaboratori].[IDCollaboratore],
[Cognome] & " " & [Nome] AS Nominativo FROM Collaboratori WHERE ((Not
([Collaboratori].[Codice di Collaborazione])="0 ")) ORDER BY
[Collaboratori].[Cognome], [Collaboratori].[Nome];
2) Settimana dal: data
3) Settimana al: data
4) Tutti gli altri dati statisitci che mi servono (Appuntamenti, contratti
ecc.)
Creo un'altra query di selezione? Se sì come?
Grazie per l'aiuto

 effettuare delle ricerche statistiche. La tabella, è così composta
di questa cosa e' bene che ne fai un post diverso. Non mi sembra che c'entri
con il primo problema
la nuova classe e':
-----------------------------------
modulo di classe di nome "clsTree"
-----------------------------------
Option Compare Database
Option Explicit
Dim Properties As New Collection
Private Sub Class_Initialize()
Properties.Add "", "Key"
Properties.Add "", "Nominativo"
Properties.Add 0, "Fatt1"
Properties.Add 0, "Fatt2"
Properties.Add 0, "Storno"
End Sub
Property Get Count() As Long
    Count = Properties.Count
End Property
Property Get Key() As Variant
    Key = Properties("Key")
End Property
Property Let Key(pValue As Variant)
    Properties.Remove "Key"
    Properties.Add pValue, "Key"
End Property
Property Get Nominativo() As Variant
    Key = Properties("Key")
End Property
Property Let Nominativo(pValue As Variant)
    Properties.Remove "Nominativo"
    Properties.Add pValue, "Nominativo"
End Property
Property Get Fatt1() As Variant
    Fatt1= Properties("Fatt1")
End Property
Property Let Fatt1(pValue As Variant)
    Properties.Remove "Fatt1"
    Properties.Add pValue, "Fatt1"
End PropertyProperty Get Fatt2() As Variant
    Fatt2= Properties("Fatt2")
End Property
Property Let Fatt2(pValue As Variant)
    Properties.Remove "Fatt2"
    Properties.Add pValue, "Fatt2"
End Property
Property Get Storno() As Variant
    Storno= Properties("Storno")
End Property
Property Let Storno(pValue As Variant)
    Properties.Remove "Storno"
    Properties.Add pValue, "Storno"
End Property
Function Store(pKey As String, pImporto As Variant, pAnag)
    Fatt1= pImporto(0)
    Fatt2= pImporto(1)
    Storno= pImporto(2)
    Key = pKey
    Nominativo = pAnag
End Function
Function Evaluate(pLevel As Long, pFatt As Variant) As Long
Dim oTree As clsTree
Dim iFor As Long
Dim iLv As Long
iLv = pLevel + 1
For iFor = 6 To Properties.Count
    Set oTree = Properties(iFor)
    oTree.Evaluate iLv, pFatt
Next
pFatt(iLv) = pFatt(iLv) + Value
Evaluate = iLv
End Function
-----------
Il codice a seguire l'ho messo su un bottone
******************************************
Private Sub Esegui_Click()
Dim Provv As New Collection
Dim oVend As New clsTree
Dim oParent As clsTree
Dim rst As DAO.recordset   <--------
Dim sKey As String
Dim aPerc As Variant
Dim aFatt(2,10) As Long
dim aImp(2) as long
Dim iFor As Long
Set rst = currentdb.openrecordset(Q_Fatt)
Do Until rst.EOF
    Set oVend = Nothing
    aImp(0) = Nz(rst("Fatturato1").Value, 0)
    aImp(1) = Nz(rst("Fatturato2").Value, 0)
    aImp(2) = Nz(rst("StornoFatturato").Value, 0)
    On Error Resume Next
    sKey = "K" & rst("superiore")
    oVend.Store rst("idColl").Value, aImp, rst("Nominativo").Value
    Provv.Add oVend, "K" & rst("idcoll").Value
    if err.number <> 0 then msgbox "Eccezione: chiave superiore presente"
    If sKey <> "K" Then
        Set oParent = Provv(sKey)
        If Err.Number <> 0 Then
            Set oParent = New clsTree
            oParent.key = sKey
            Provv.Add oParent, sKey
        End If
        oParent.Add oVend
    End If
    On Error GoTo 0
    rst.MoveNext
Loop
Set rst = Nothing
Set oParent = Nothing
For Each oParent In Provv
    oParent.Evaluate 0, aFatt
    For iFor = 1 To UBound(aPerc)
      if afatt(0,ifor) + afatt(1,ifor) + afatt(2,ifor) = 0 then
         debug.print "---------------------------"
      else
         Debug.Print oParent.Key & "-" & aFatt(0,iFor) - afatt(1,ifor) -
afatt(2,ifor)
      endif 
      aFatt(0,iFor) = 0
      afatt(1,ifor) = 0
      afatt(2,ifor) = 0
    Next
 
Next
End Sub
*******************************************************
questo e' il codice per gestire e verificare se tutto e' ok. I risultati sono
per il momento gestiti dalla debug.print.
N.B. ho modificato il codice senza provarlo. Potrebbe non essere esente da
errori
alla prossima


 per il momento gestiti dalla debug.print"? Su un bottone? Come lo creo?
Ricorda che hai a che fare con un principiante.
Aspetto con ansia tue notizie
Vito

 Aspetto con ansia tue notizie
manco fossi l'amante ;<)


Grazie per il lavoro svolto. E' eccezionale. Ma voglio ancora approfittare
della tua pazienza. Ho aggiunto al file una Query_ripeilogativa che contiene
un esempio di come mi servirebbero i dati e la loro relativa elaborazione
anche temporale. Quando nella query parlo di (es. "fatturato struttura
prodotto1" intendo per Abiuso Marco per es. il fatturato suo personale
sommato a tutti i fatturati dei suoi successivi livelli; nell'esempio=371).
Non mi serve per fortuna sapere il fatturato per singolo livello cosě come
nella maschera da te realizzata, bensě il totale realizzato dal Padre e da
tutti i Figli.
N.B. Ho visto che nel calcolo del conteggio proposte nella
Query-riepilogativa vengono anche calcolate le proposte con
fatturato=0.Questo falsa i totali e le medie. E' possibile risolverlo o devo
eliminare l'impostazione che mette 0 come valore predefinito e lasciare un
valore vuoto?
Per il calcolo delle provvigioni non so se potrň abusare ancora della tua
pazienza.
Comunque Grazie ancora

 pazienza.
il calcolo delle provvigioni e' praticamente steso nella tabella "risultati"
prendo i dati di esempio:
id     liv      fat1    fat2    stor     anag
-------------------------------------------------------
1	1	200	100	12	Abiuso Marco
1	2	21	11	11	Abiuso Marco
1	3	10	10	0	Abiuso Marco
Cose' il livello 1? e' il fatturato diretto a cui applichi la perc. X
cose' il livello 2? e' il fatturato dei diretti dipendenti a cui
           applichi la perc y
cose' il livello 3? e' il fatturato dei "nipoti" a cui
           applichi la perc z
quale' la provvigione di id 1 (Abiuso)? la somma dei tre risultati
precedenti. Per fare il tutto penso sia sufficente una query di somma 
e raggruppamento


 > valore vuoto?
Se io voglio calcolare il numero delle proposte del prodotto 1 ed ho 10
valori di cui 2 zero mi indica 10 proposte, non 8 e se faccio la media dei
fatturati, questa viene divisa per 10 e non per 8. Come lo risolvo questo
aspetto?


 aspetto?
in due modi
1) inserendo Null al posto dello 0 
2) scartando i valori 0 nella query tramite la clausola Where
continuo a essere dell'opinione che un valore 0 fa media


 Perchè i risultati della somma del fatturato per livelli sono arrotondati
al numero intero? Se io ho 20,12+30,15 vorrei avere 50,27 e non 50. Come
posso correggere questo aspetto?
Grazie
Ciao Vito

> 2) scartando i valori 0 nella query tramite la clausola Where
Come deve essere scritta questa espressione affinchè se  vado a contare il
numero dei record FatturatoProdotto1 vengano esclusi i record con valore 0?

  Perchč i risultati della somma del fatturato per livelli sono arrotondati

perche' ho assegnato dei "long" i valori "long" devono essere modificati in
"single" o "double" (trattandosi di fatturato ho "valutato" erroneamente che
potessero essere arrotondati all'unita')



......
 WHERE (((Collaboratori.[Codice di Collaborazione])<>"0 "))
    and fatturatoprodotto1 <> 0
.............


CAlcolo Provvigioni
 I Collaboratori sono organizzati secondo una struttura gerarchica di
diverse posizioni. Ad ogni posizione corrisponde un valore in ?. Ho creato a
tal proposito una tabella Posizioni
Pos.1    4?
Pos.2    5?
Pos.3    6?
Pos.4    7?
ecc.
Inoltre ho creato nella tabella Elenco conclusioni due colonne che indicano
Posizione del superiore e posizione del collaboratore che ha fatto il
contratto.
Collaboratore    Pos Sup    Pos    FatturatoProdotto1
Giulio Rossi                            2                50,25
Matteo Biasi        2                1                45,12
Gerardo Leone    2                2               33,11
Verde Andrea      1                1                36,15
ecc.
Ora come si calcolano le provvigioni?
Giulio Rossi che è il Padre generale prende per la sua produzione personale
il valore riportato in tabella posizioni corrispondente alla sua
moltiplicato per fatturatoprodotto1 o fatturatoprodotto2 (es. 5?*50,25)
Ma Giulio rossi guadagna anche dai suoi figli nel Livello2( Figli diretti)
(es. Matteo Biasi, Gerardo Leone).
In che modo? (es. Si somma il fatturatoprodotto1di Matteo Biasi a quello del
suo figlio Verde Andrea e di tutti gli altri eventuali figli e lo si
moltiplica per la differenza tra il valore corrispondente alla Posizione del
Superiore e quello della propria posizione)
Nell'esempio sopra Giulio Rossi (Pos. 2) guadagna:
5?*50,25=251,25 ?  (Produzione   propria)
(5?-4?)*(45,12+36,15)=81,27?  (Sul Figlio diretto Matteo Biasi)
(5?-5?)*33,11=0? (Sul Figlio diretto gerardo leone)
Matteo Biasi (Pos.1) guadagna:
4?*45,12=180,48?    (Produzione propria)
(4?-4?)*36,15=0?    (Sul figlio diretto verde Andrea)
 ecc. con questo schema.
Il Guadagno andrebbe diviso l'85% subito ed il 15% successivamente e
detassato del 9% ma questo posso farlo, penso con una Query in seguito.
Spero di essere stato chiaro come posso fare per calcolare le provvigioni?
Grazie
Ciao Vito

 
[cut]
mi tocchera' imparare l'arabo!
Ma la mia risposta di giovedi' scorso ore 10.42 l'hai letta? la hai
metabolizzata?
prova a confrontare i tuoi quesiti con quanto ho scritto in quel post.
Quello che chiedi sta scritto li' e le due tabelle aggiuntive che utilizzi
praticamente non servono (a meno ti una possibile tabellina delle percentuali
da applicare, fatta,grosso modo, di Livello e Valore percentuale)


 Quello che chiedi sta scritto li' e le due tabelle aggiuntive che utilizzi
Quello che chiedo non sta scritto lì perchè io non sto parlando di un
sistema multi livello in cui una persona prende una percentuale sulla somma
del fatturato del livello1, un'altra su quella del livello2 ecc.  La
POSIZIONE che ti ho indicato non è il Livello (Figli, nipoti ecc.)come da te
inteso bensì un inquadramento in carriera in azienda (un po' come i livelli
dei dipendenti pubblici). Se rivedi alla luce di questo chiarimento il post
precedente potresti capire perchè giovedì scorso non ho trovato la risposta.
Ciao Vito

 della piramide, per avere il totale e' sufficiente fare una sum sull' id.
Ho fatto una sum sull'id creando una query che preleva i dati dalla tabella
risultati e somma i valori di fatturato. Fin qui tutto ok, ma ho bisogno di
sapere anche il numero di proposte per struttura di Fatturatoprodotto1 e 2.
Come faccio? Credo bisogni intervenire sul codice aggiungendo alla tabella
Risultati il campo Num. proposte fatturatoprodotto1 e 2.
Se č cosě cosa devo modificare nel codice?
grazie Vito

 risultati e somma i valori di fatturato.
Se in questa query inserisco anche la tabella elenco conclusioni :FROM
(Collaboratori INNER JOIN Risultati ON Collaboratori.IDCollaboratore =
Risultati.idCollaboratore) INNER JOIN [Elenco conclusioni] ON
Collaboratori.IDCollaboratore = [Elenco conclusioni].IDCollaboratore
e recupero la data proposta o qualsiasi altro dato la somma dei fatturati
salta completamente. A cosa è dovuto questo aspetto?