scritto da | on | Nessun commento

I clienti che vengono gestiti con ordine aperto periodicamente inviano il programma ordini, è opportuno quindi confrontarlo con quello vecchio in modo da valutare l’impatto delle variazioni in termini di fatturato e di carico ore lavoro, inoltre consente di verificare eventuali violazione degli accordi contrattuali. Per poter effettuare un confronto è necessario partire da due tabelle con la seguente struttura:
NUOVO: CODICE,DATA,QT
VECCHIO: CODICE, DATA, QT
Per effettuare il confronto eseguiamo le seguenti query:
Agg ConfrontoProgrammi01

INSERT INTO ConfrontoProgrammi ( CODICE, DATA, QT, P, TIPO )
SELECT Nuovo.CODICE, Nuovo.DATA, Nuovo.QT, 1 AS P, "NUOVO" AS TIPO
FROM Nuovo;

Agg ConfrontoProgrammi02

INSERT INTO ConfrontoProgrammi ( CODICE, DATA, QT, P, TIPO )
SELECT Vecchio.CODICE, Vecchio.DATA, Vecchio.QT, 1 AS P, "VECCHIO" AS TIPO
FROM Vecchio;

CODICI

TRANSFORM SUM(ConfrontoProgrammi.P) AS SommaDiP
SELECT ConfrontoProgrammi.CODICE
FROM ConfrontoProgrammi
GROUP BY ConfrontoProgrammi.CODICE
PIVOT ConfrontoProgrammi.TIPO;

DATE

TRANSFORM SUM(ConfrontoProgrammi.DATA) AS SommaDiDATA
SELECT ConfrontoProgrammi.CODICE
FROM ConfrontoProgrammi
GROUP BY ConfrontoProgrammi.CODICE
PIVOT ConfrontoProgrammi.TIPO;

QT

TRANSFORM SUM(ConfrontoProgrammi.QT) AS SommaDiQT
SELECT ConfrontoProgrammi.CODICE
FROM ConfrontoProgrammi
GROUP BY ConfrontoProgrammi.CODICE
PIVOT ConfrontoProgrammi.TIPO;

ConfrontaCodici

SELECT CODICI.CODICE, CODICI.NUOVO, CODICI.VECCHIO, IIf([NUOVO]=[VECCHIO],"INVARIATO",IIf(nz([NUOVO],0)>nz([VECCHIO],0),"AGGIUNTO","ELIMINATO")) AS VARCODICE
FROM CODICI;

ConfrontaDate

SELECT DATE.CODICE, DATE.NUOVO, DATE.VECCHIO, IIf([NUOVO]=[VECCHIO],"INVARIATO",IIf(nz([NUOVO],0)>nz([VECCHIO],0),"POSTICIPATO","ANTICIPATO")) AS VARDATA
FROM [DATE];

ConfrontaQT

SELECT QT.CODICE, QT.NUOVO, QT.VECCHIO, IIf([NUOVO]=[VECCHIO],"INVARIATO",IIf(nz([NUOVO],0)>nz([VECCHIO],0),"AUMENTATO","DIMINUITO")) AS VARQT
FROM QT;

CONFRONTO

SELECT [ELENCO CODICI].CODICE, ConfrontaCodici.VARCODICE, ConfrontaDate.VARDATA, ConfrontaQT.VARQT, [VARCODICE] & [VARDATA] & [VARQT] AS VARIAZIONE
FROM (([ELENCO CODICI] INNER JOIN ConfrontaCodici ON [ELENCO CODICI].CODICE = ConfrontaCodici.CODICE) INNER JOIN ConfrontaDate ON [ELENCO CODICI].CODICE = ConfrontaDate.CODICE) INNER JOIN ConfrontaQT ON [ELENCO CODICI].CODICE = ConfrontaQT.CODICE;

Lascia un Commento

News