|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jun 2012
Messaggi: 1187
|
[SQL] Calcoli condizionali
Un saluto a tutti.
Avrei un problema, per le mie competenze, difficilmente risolvibile. Dunque. Ho un DB non modificabile, se non con l'aggiunta di tabelle (non posso modificare quelle esistenti). Problema: ho 3 venditori identificati da un codice univoco interno. Ricevono un compenso in % (uguale per tutti) dipendente dal fatturato totale del gruppo e dal tipo di vendita. Cioè le % si applicano con questa logica: tipo1 | val_limite | %_<_lim | %_>_lim tipo2 | val_limite | %_<_lim | %_>_lim tipo3 | val_limite | %_<_lim | %_>_lim Quindi da una parte ho una tabella che calcola i totali per tipo: tipo1 | fatturato_tot_tipo1 tipo2 | fatturato_tot_tipo2 tipo3 | fatturato_tot_tipo3 dall'altra una tabella che mi mostra ogni vendita del singolo venditore. vend1 | cod_prodX | quant_vend | fatt vend1 | cod_prodY | quant_vend | fatt vend2 | cod_prodY | quant_vend | fatt vend2 | cod_prodZ | quant_vend | fatt vend2 | cod_prodX | quant_vend | fatt vend3 | cod_prodX | quant_vend | fatt vend3 | cod_prodY | quant_vend | fatt vend3 | cod_prodZ | quant_vend | fatt vend3 | cod_prodK | quant_vend | fatt Non riesco a collegare le 2 tabelle e applicare quindi la % dovuta al corretto tipo di vendita. Non so se mi sono spiegato bene. Avrebbe senso salvare i dati della tabella dei totali per tipo in variabili? come posso farlo nel caso? Ultima modifica di Lorenzoz : 03-10-2014 alle 12:53. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2780
|
Non e' molto chiaro quello che devi fare... potresti fare un esempio pratico con tutti i calcoli?
Come fai a mettere in relazione le ultime due tabelle se non hanno nulla in comune? Ci sara' una terza tabella che fa da tramite. |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Jun 2012
Messaggi: 1187
|
Quote:
Esempio: 3 venditori: X Y Z 3 tipi di classificazione dei prodotti: A B C Compenso variabile in base al fatturato complessivo dei 3 venditori: per il prodotto A prendono il 10% fino a 50000€ e il 7% oltre. per il prodotto B prendono il 50% fino a 30000€ e il 40% oltre. per il prodotto C prendono il 10% fino a 10000€ e il 7% oltre. Quindi se i totali dei fatturati sono: A=30000€ B=35000€ C=12000€ Il venditore X riceverà: il 10% dei SUOI prodotti (di tipo A) venduti, il 40% dei SUOI prodotti (di tipo B) venduti, il 7% dei SUOI prodotti (di tipo C) venduti. Idem per gli altri due, sempre riferito ai pezzi venduti da ogni venditore. |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jun 2012
Messaggi: 1187
|
Scusate il doppio post.
Sono giunto ad una soluzione, forse macchinosa, ma l'ho raggiunta. Purtroppo al momento sono molto preso e non riesco a postare il giro di query. Appena possibile aggiorno questo messaggio e vi sottopongo un altro dubbio. |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jun 2012
Messaggi: 1187
|
Dunque la soluzione che ho trovato è stata semplice, non mi era proprio venuta in mente prima.
Ho un tabella che calcola il fatturato, per venditore, e per tipo prodotto. vend1 | cod_prodX | quant_vend | fatt | tipo_prod | vend1 | cod_prodY | quant_vend | fatt | tipo_prod | vend2 | cod_prodY | quant_vend | fatt | tipo_prod | vend2 | cod_prodZ | quant_vend | fatt | tipo_prod | vend2 | cod_prodX | quant_vend | fatt | tipo_prod | vend3 | cod_prodX | quant_vend | fatt | tipo_prod | vend3 | cod_prodY | quant_vend | fatt | tipo_prod | vend3 | cod_prodZ | quant_vend | fatt | tipo_prod | vend3 | cod_prodK | quant_vend | fatt | tipo_prod | E una seconda tabella, raggruppata per tipo (quindi 3 righe totali), con 3 condizioni di IIF. IIf(tipo_prod)="A";IIf(fatt)<=50000;0,1;0,07);0) IIf(tipo_prod)="B";IIf(fatt)<=30000;0,5;0,4);0) IIf(tipo_prod)="C";IIf(fatt)<=10000;0,1;0,07);0) il risultato è una matrice con tutti 0 tranne le celle dove trova corrispondenza del tipo prodotto e quindi estrae la % corretta. Una 3a query unisce le due precedenti per tipo_prod e applica le percentuali ai fatturati dei singoli venditori. Veniamo al nuovo dubbio che ho. Ho un altro gruppo di venditori che ha un contratto differente. Anche in questo caso prendono l'X% in base ad un valore limite, per tutti i componenti del gruppo. Tuttavia questo limite si resetta ogni mese!! Quindi quando eseguo le estrazioni per un singolo mese non ho problemi, ma se volessi un riassuntivo annuale dovrei tenere conto, ad esempio: Fatturato Gennaio: 5000€ Fatturato Febbraio: 20000€ Fatturato Marzo: 30000€ Fatturato Maggio: 28000€ Fatturato Giugno: 25000€ Fatturato Luglio: 27000€ Fatturato Agosto: 8000€ ... Con compenso comune stabilito di: 30% sotto i 10000€ e del 25% oltre, per ogni mese. Quindi: 30% a gennaio 25% a febbraio 25% a marzo 25% ad aprile 25% a maggio 25% a giugno 25% a luglio 30% ad agosto Ultima modifica di Lorenzoz : 05-10-2014 alle 09:35. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:13.




















