Già che c'ero ho preso di petto la cosa e me la sono risolta 😉
Visto che potrebbe interessare anche altri (@[cancellato].mancuso ?) riporto un po' i passaggi ed il risultato ottenuto.
La prima cosa fatta è stata mettere nello status di PAGATA tutte le passive precedenti al 2019:
UPDATE co_documenti
SET idstatodocumento = 1
WHERE id_segment = 2 AND data < ‘2019-01-01’;
Laddove la tabellina degli stati riporta questo:
1 Pagato
2 Bozza
3 Emessa
4 Annullata
5 Parzialmente pagato
Dal momento che questo non incide su quel calcolo, sono andato a ritroso dalla query contenuta in quel Widget (della pagina Acquisti -> Fatture di acquisto):
SELECT CONCAT_WS(' ', REPLACE(REPLACE(REPLACE(FORMAT((SELECT ABS(SUM(da_pagare-pagato))), 2), ',', '#'), '.', ','),'#', '.'), '€') AS dato
FROM (co_scadenziario INNER JOIN co_documenti ON co_scadenziario.iddocumento=co_documenti.id)
INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id
WHERE co_tipidocumento.dir='uscita'
|segment| AND 1=1
Quindi, facendo un po’ di semplificazioni ho estrapolato le righe interessate dal calcolo:
SELECT da_pagare,pagato
FROM (co_scadenziario INNER JOIN co_documenti ON co_scadenziario.iddocumento=co_documenti.id)
INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id
WHERE co_tipidocumento.dir='uscita'
Ne risultavano 55 righe. La query originale somma TUTTE le voci in da_pagare e pagato previa rimozione del segno (sinceramente non ne capisco il perché).
Per vedere un po’ più dati (tutte le colonne):
SELECT *
FROM (co_scadenziario INNER JOIN co_documenti ON co_scadenziario.iddocumento=co_documenti.id)
INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id
WHERE co_tipidocumento.dir='uscita'
Restringo il campo a prima del 2019:
SELECT *
FROM (co_scadenziario INNER JOIN co_documenti ON co_scadenziario.iddocumento=co_documenti.id)
INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id
WHERE co_tipidocumento.dir='uscita' AND data_emissione < '2019-01-01'
Quindi formulo la query per CANCELLARE dallo scadenzario tutte le righe inerenti le Fatture Passive antecedenti il 2019:
DELETE co_scadenziario
FROM co_scadenziario
INNER JOIN co_documenti ON co_documenti.id=co_scadenziario.iddocumento
INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id
WHERE data_emissione < '2019-01-01' AND co_tipidocumento.dir='uscita'
Inutile dire che prima di fare tutto ciò ho fatto un bel BackUp e l'ho messo da parte 😉
Spero possa tornare utile a qualcuno, altrimenti sarà un altro dei miei appunti su questo prezioso forum 😃