Nel caso in cui l’azienda gestisca più magazzini può essere utile misurare quanto questi siano sbilanciati, ovvero capire se nei magazzini c’è il materiale che serve. Per valutare questa situazione è possibile procedere nel modo seguente:
Individuare per ogni magazzino i codici mancanti ed i codici disponibili (sono mancanti i codici che hanno impegno inferiore alla giacenza, sono disponibili i codici che hanno giacenza superiore all’impegno)
SELECT [impegnato 2 mesi].CODICE, [impegnato 2 mesi].MAG, ([G]-nz([QT],0)) AS MANC FROM [impegnato 2 mesi] LEFT JOIN [Giacenza interna] ON ([impegnato 2 mesi].CODICE = [Giacenza interna].CODICE) AND ([impegnato 2 mesi].MAG = [Giacenza interna].MAG) WHERE (((([G]-nz([QT],0)))<0)) ORDER BY [impegnato 2 mesi].CODICE; |
SELECT [impegnato 2 mesi].CODICE, [impegnato 2 mesi].MAG, ([G]-nz([QT],0)) AS MANC FROM [impegnato 2 mesi] LEFT JOIN [Giacenza interna] ON ([impegnato 2 mesi].CODICE = [Giacenza interna].CODICE) AND ([impegnato 2 mesi].MAG = [Giacenza interna].MAG) WHERE (((([G]-nz([QT],0)))<0)) ORDER BY [impegnato 2 mesi].CODICE;
SELECT [Giacenza interna].CODICE, [Giacenza interna].MAG, [G]-nz([QT],0) AS DISP FROM [Giacenza interna] LEFT JOIN [impegnato 2 mesi] ON ([Giacenza interna].MAG = [impegnato 2 mesi].MAG) AND ([Giacenza interna].CODICE = [impegnato 2 mesi].CODICE) WHERE ((([G]-nz([QT],0))>0)); |
SELECT [Giacenza interna].CODICE, [Giacenza interna].MAG, [G]-nz([QT],0) AS DISP FROM [Giacenza interna] LEFT JOIN [impegnato 2 mesi] ON ([Giacenza interna].MAG = [impegnato 2 mesi].MAG) AND ([Giacenza interna].CODICE = [impegnato 2 mesi].CODICE) WHERE ((([G]-nz([QT],0))>0));
A questo punto determiniamo la qt trasferibile tra i magazzini
SELECT Mancanti.CODICE, Mancanti.MAG AS [DEP MAN], Abs([MANC]) AS M, Disponibile.MAG AS [DEP DISP], INTO Trasferimenti FROM Mancanti INNER JOIN Disponibile ON Mancanti.CODICE = Disponibile.CODICE; |
SELECT Mancanti.CODICE, Mancanti.MAG AS [DEP MAN], Abs([MANC]) AS M, Disponibile.MAG AS [DEP DISP], INTO Trasferimenti FROM Mancanti INNER JOIN Disponibile ON Mancanti.CODICE = Disponibile.CODICE;
Valorizziamo i trasferimenti e raggruppiamo per combinazione magazzino partenza magazzino destinazione:
SELECT Trasferimenti.[DEP PAR], Trasferimenti.[DEP DES], SUM([M]*[COSTO]) AS VALORE FROM Trasferimenti INNER JOIN ANAGRAFICA ON Trasferimenti.CODICE = ANAGRAFICA.CODICE GROUP BY Trasferimenti.[DEP PAR], Trasferimenti.[DEP DES]; |
SELECT Trasferimenti.[DEP PAR], Trasferimenti.[DEP DES], Sum([M]*[COSTO]) AS VALORE FROM Trasferimenti INNER JOIN ANAGRAFICA ON Trasferimenti.CODICE = ANAGRAFICA.CODICE GROUP BY Trasferimenti.[DEP PAR], Trasferimenti.[DEP DES];
A questo punto dividiamo il totale dei trasferimenti per il valore totale dei magazzini ed avremo il livello di bilanciamento dei magazzini, se invece dividiamo il valore dei singoli trasferimenti per il totale e calcoliamo l’indice di Gini se il nostro sbilanciamento è concentro su pochi magazzini o se è disperso. Calcolando giornalmente questi due valori possiamo valutare il loro trend nel tempo per capire se le azioni intraprese hanno sortito degli effetti, inoltre è possibile calcolare diversi indici di bilanciamento dei magazzini considerando l’impegno ad un mese, due mesi o più.