Salve, ho un problema da risolvere con una stored, ma in un punto preciso mi dà un problema e più precisamente si tratta di assegnare dei punti a degli utenti in base a delle caratteristiche che imposto nelle query come filtri.

le tabelle incriminate in questa query sono quattro una si chiama gruppi, l'altra si chiama generale, l'altra meriti e infine lavorazione

nella tabella gruppi abbiamo ID_GRuppo(GRP0001, etcc), poi abbiamo Mese(022009,032009)cioè mese ed anno e idlavorazione (l'id che fa rif. alla tabella lavorazioni)

nella tabella generale è quella dove va aggiornato il valore dei punti e qui abbiamo IDGruppo(chiave primaria),il nominativo dell'utente(che è il cf ed è anche chiave primaria),il mese(chiave primaria) e il campo Punti

nella tabella Meriti abbiamo anche qui IDGruppo,nominativo,mese e tutti e tre i valori sono chiave primaria e in più ResaMedia campo decimal che è la media che gli viene assegnata ad ogni utente in base alla propria prestazione.

nella tabella lavorazione abbiamo l'id della lavorazione (contatore) e il tipo lavorazione che viene fatta.


Adesso io devo assegnare nella tabella generale e più precisamente nel campo punti l valore 30 SE lavorazione del mese = a quella del mese precedente E +10% di resaMedia


Bene io vi mostro la singola query e non tutta ala stored, anche perchè le altre query funzionano alla perfezione.

codice:
+
isnull((
select 30 
from sk_generale gen 
      join ANA_GRUPPI anagr 
          on anagr.ID = gen.ID_GRUPPO 
              and anagr.Mese = gen.Mese
                  join Lavorazioni lav 
                 on lav.id_lavorazione = anagr.id_lavorazione 
                           join sk_Merito_Outbound me_out 
                            on me_out.OP = gen.OP 
                            and me_out.Mese = gen.Mese 
                            and me_out.ID_Gruppo = gen.ID_GRUPPO
				join sk_merito_outbound me_out_prec
 				on me_out_prec.OP = gen.OP
                                    and me_out_prec.Mese = dbo.previousmonth(gen.Mese)
                                        and  me_out_prec.ID_Gruppo = gen.ID_GRUPPO
       where me_out.ResaMedia >= (me_out_prec.ResaMedia +(me_out_prec.ResaMedia * 0.1))
                       
),0)
Spero di essere stato chiaro, spero anche che il materiale che vi ho fornito sia sufficente e spero che mi possiate aiutare.

Grazie