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; |
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; |
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; |
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; |
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; |
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; |
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]; |
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; |
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; |
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;