scritto da | on | Nessun commento

Il programma spedizioni, effettuato con cadenza settimanale, indica giorno per giorno quali spedizioni effettuare ai vari clienti, costituisce il piano di lavoro per il magazzino spedizioni. La preparazione del programma spedizioni parte dagli ordini clienti e segue il seguente flusso di lavoro:

  1. Selezione degli ordini evadibili nella settimana (Ordini che hanno data consegna inferiore alla settimana di spedizione e che hanno giacenza sufficiente per evadere la richiesta)
  2. Raggruppamento delle spedizioni per cliente e giorno di spedizione
  3. Raggruppamento delle spedizioni per corriere e giorno di spedizione

Consideriamo le seguenti tabelle:
Ordini: NORDINE, CCLIENTE, CODICE, DATAC, QT
Clienti: CCLIENTE, CLIENTE, CORRIERE
Saldi magazzino: CODICE, GIACENZA
Con una prima query individuiamo gli ordini evadibili (consideriamo la prima settimana di settembre quindi data consegna inferiore al 05/09/2009)

SELECT Ordini.NORDINE, Clienti.CLIENTE, Clienti.CORRIERE, Ordini.DATAC, Ordini.QT, [Saldi magazzino].Giacenza, [Giacenza]-[QT] AS [QT EVADIBILE], IIf([DATAC]<#8/31/2009#,#8/31/2009#,[DATAC]) AS [GIORNO CONSEGNA], IIf([QT EVADIBILE]>=0,1,0) AS EVADIBILE
FROM (Ordini INNER JOIN Clienti ON Ordini.CCLIENTE = Clienti.CCLIENTE) INNER JOIN [Saldi magazzino] ON Ordini.CODICE = [Saldi magazzino].CODICE
WHERE (((Ordini.DATAC)<#9/5/2009#));

A questo punto raggruppiamo per cliente giorno di consegna:

TRANSFORM COUNT([Ordini evadibili].NORDINE) AS ConteggioDiNORDINE
SELECT [Ordini evadibili].CLIENTE
FROM [Ordini evadibili]
WHERE ((([Ordini evadibili].EVADIBILE)=1))
GROUP BY [Ordini evadibili].CLIENTE
PIVOT [Ordini evadibili].[GIORNO CONSEGNA];

E poi raggruppiamo per corriere

TRANSFORM COUNT([Ordini evadibili].NORDINE) AS ConteggioDiNORDINE
SELECT [Ordini evadibili].CORRIERE
FROM [Ordini evadibili]
WHERE ((([Ordini evadibili].EVADIBILE)=1))
GROUP BY [Ordini evadibili].CORRIERE
PIVOT [Ordini evadibili].[GIORNO CONSEGNA];

Lascia un Commento

News