Torna all'elenco degli articoli Articoli
Tempo di lettura: 11 minuti

SQL per il reporting finanziario

L'SQL dovrebbe far parte di ogni moderno processo di reporting finanziario. Può gestire gigabyte di dati ed eseguire calcoli finanziari in una frazione di secondo. È ora di abbandonare Abacus (noto anche come Excel!) e di iniziare a usare SQL nel reporting finanziario.

I dati hanno assunto un ruolo centrale nel processo decisionale aziendale. Questo vale ancora di più per i dati finanziari. L'obiettivo principale delle aziende è il profitto, quindi non c'è da stupirsi che i dati finanziari svolgano un ruolo cruciale nel processo decisionale strategico di qualsiasi azienda moderna. Queste aziende amano definirsi " data-driven".

In un'azienda data-driven, le decisioni sono supportate da dati finanziari storici e attuali. I dati sono fondamentali per capire se le prestazioni dell'azienda stanno migliorando e come si confrontano con i concorrenti e con la media del settore. È anche possibile utilizzare tecniche statistiche avanzate sui dati storici per prevedere le tendenze future.

SQL è uno strumento indispensabile per le aziende. Nel reporting finanziario si parla di enormi quantità di dati, che non possono essere gestiti manualmente. SQL è un linguaggio di programmazione progettato per interrogare i database e manipolare i dati, il che lo rende ideale per la gestione dei dati finanziari.

Potete vedere come funziona l'SQL per la rendicontazione finanziaria nel nostro SQL per principianti corso. Imparerete a recuperare i dati da una o più tabelle, a filtrare e aggregare i dati, a scrivere istruzioni complesse, a utilizzare gli operatori di set e a eseguire calcoli. Inoltre, la nostra traccia SQL Reporting vi insegna l'utilizzo di SQL in scenari di reporting finanziario. Due parti significative di questo percorso esplorano le tendenze dei ricavi e le analisi del comportamento dei clienti utilizzando SQL. Nei nostri corsi l'apprendimento è interattivo e sono presenti centinaia di esempi reali in cui è possibile imparare e mettere in pratica le tecniche di reporting SQL.

SQL è in grado di gestire i dati finanziari?

Ho appena fatto questa domanda a SQL e mi ha risposto: "Certo, nessun problema!" Quindi, ecco che per SQL non è importante il tipo di dati di cui si parla. Per SQL i dati finanziari sono solo dati. L'unico requisito è che i dati siano salvati in database.

Siete interessati ad analizzare i prezzi giornalieri di migliaia di azioni? O le variazioni giornaliere dei tassi di cambio? Forse i prodotti venduti, i costi sostenuti, il monitoraggio delle scorte? SQL gestisce tutto questo con estrema facilità. Vi mostrerò alcuni esempi di utilizzo di SQL per il reporting finanziario.

Esempio semplice: Trovare tutte le vendite di marzo 2024

Supponiamo di avere la tabella sales. Contiene i dati delle vendite dal 1° gennaio 2024 al 30 aprile 2024. Ecco un'istantanea della tabella:

iddatevalue
12024-01-0126,524.60
22024-01-0241,657.94
322024-02-0129,367.07
332024-02-021,794.49
612024-03-0139,331.29
622024-03-0235,760.50
922024-04-0114,467.03
932024-04-023,926.08
1212024-04-3040,000.00

In Excel, probabilmente si fa così: si seleziona l'intervallo di date nel filtro, si copiano i risultati in un altro foglio ed ecco tutte le vendite di marzo 2024. Ma anche SQL può filtrare i dati e lo fa in modo molto più semplice e veloce. Ecco come utilizzare WHERE per trovare tutte le vendite di marzo 2024:

SELECT id, 
	 date,
	 value
FROM sales
WHERE date BETWEEN '2024-03-01' AND '2024-03-31';

In SELECT si selezionano tutte le colonne di cui si ha bisogno nell'output. In FROM, si inserisce il nome della tabella da interrogare. Questa è la query di base che verrà utilizzata nella maggior parte dei casi; il resto viene personalizzato in base alle proprie esigenze.

In WHERE, si scrive il nome della colonna che si vuole filtrare. Quindi si definiscono le date di inizio e fine utilizzando gli operatori BETWEEN e AND.

Alla fine, si ottengono le vendite per tutti i giorni del marzo 2024. Per risparmiare spazio, mostrerò solo le prime dieci righe.

iddatevalue
612024-03-0139,331.29
622024-03-0235,760.50
632024-03-0345,585.98
642024-03-0439,274.69
652024-03-0531,454.49
662024-03-066,221.06
672024-03-0748,153.30
682024-03-0829,834.60
692024-03-0939,679.35
702024-03-1031,000.10

Un altro semplice esempio: Somma di tutte le vendite di marzo 2024

Ora che le cifre di marzo 2024 sono state separate dal resto, è possibile sommarle per ottenere le vendite totali di marzo. A questo scopo, SQL dispone della funzione SUM(). In una query SQL è possibile filtrare e sommare i dati in una sola volta:

SELECT SUM(value) AS total_march_2024_sales
FROM sales
WHERE date BETWEEN '2024-03-01' AND '2024-03-31';

A parte la funzione SUM(), la query rimane sostanzialmente la stessa. Filtra le stesse date e poi somma tutti i valori filtrati.

Con una breve query si ottiene questo risultato:

total_march_2024_sales
870,126.13

Esempio meno semplice: Confronto delle vendite mese per mese

Si tratta di un'operazione molto frequente nell'analisi finanziaria: calcolare l'incremento/decremento rispetto al periodo precedente. È una delle query SQL più comuni per la finanza.

Questa query è un po' più lunga delle altre, ma non è necessario capire ogni parte del codice. Voglio solo mostrarvi quanto sia adatto l'SQL per il reporting finanziario. Date un'occhiata:

WITH monthly_sales AS (
  SELECT TO_CHAR (date, 'YYYY-MM') AS month,
         SUM(value) AS total_sales
  FROM sales
  GROUP BY month
  ORDER BY month
)
  
SELECT month,
       total_sales,
	 total_sales - LAG(total_sales) OVER (ORDER BY month) AS difference_previous_month
FROM monthly_sales;

Si tratta essenzialmente di una query in due parti. La prima parte (che inizia con WITH e termina con ORDER BY month) trasforma le date in mesi dell'anno e aggrega il valore delle vendite, in modo da ottenere questo risultato.

monthtotal_sales
2024-01745,397.15
2024-02760,853.08
2024-03870,126.13
2024-04738,800.97

Vediamo che tutti i valori sono già calcolati ed etichettati in modo ordinato. Se eseguissimo solo questa parte della query, otterremmo questo risultato. Ma vogliamo anche confrontare questi valori.

La seconda parte della query prende le vendite di ogni mese e le confronta con quelle del mese precedente. Questo viene fatto utilizzando la funzione LAG(). Si tratta di una funzione SQL a finestra, ovvero una funzione che lavora su una finestra (cioè un sottoinsieme di dati). Le funzioni finestra sono molto utili nell'analisi finanziaria SQL.

Quando si esegue la query completa, si ottiene questo risultato. Bello, non è vero?

monthtotal_salesdifference_previous_month
2024-01745,397.15NULL
2024-02760,853.0815,455.93
2024-03870,126.13109,273.05
2024-04738,800.97-131,325.16

I dati sono ordinatamente etichettati, le vendite sono sommate per ogni mese e c'è un confronto mese per mese. Immaginate quanto tempo e quanto lavoro richiederebbe questo lavoro in Excel!

Analizziamo rapidamente il risultato. Gennaio ha un NULL perché è il primo mese, quindi non si possono confrontare le vendite con nulla. Febbraio e marzo mostrano un aumento delle vendite, mentre aprile mostra un calo significativo rispetto al mese precedente. Queste informazioni potrebbero essere indicative; probabilmente dovreste trovare il motivo di questo calo. È la stagionalità? L'ingresso di un nuovo concorrente sul mercato? Sta a voi rispondere.

Per esempi più complessi di SQL per il reporting finanziario, guardate questi tre esempi reali. Inoltre, ecco un articolo dedicato al calcolo della crescita dei ricavi in SQL.

I problemi degli strumenti di reporting finanziario tradizionali

Oggi il reporting finanziario si basa ancora molto sull'uso di Excel o di strumenti simili. Sapete cosa intendo: le cartelle di lavoro con un numero sempre crescente di fogli di lavoro. I dati vengono inseriti o eliminati in ogni foglio di lavoro. Il numero di filtri, VLOOKUP, collegamenti a fogli precedenti, formule come SUM(), AVG(), IF(), IIF(), formattazione condizionale e pivot utilizzati è infinito.

Si tratta di un sacco di lavoro manuale. Indovinate un po'! Il lavoro manuale richiede molto tempo ed è soggetto a errori.

Quando lavoravo nel settore della rendicontazione finanziaria, molte lune fa, anch'io utilizzavo principalmente Excel. Ogni volta che mi veniva chiesto se i miei report fossero corretti, rispondevo: "Sono solo sicuro che sia ragionevolmente corretto" (sorprendentemente, non sono stato licenziato per averlo detto).

Il fatto è che tutti coloro che creano rapporti con tanto lavoro manuale sanno che gli errori sono in agguato.

Tutto è meraviglioso quando i rapporti sono ragionevolmente corretti. E se sono irragionevolmente errati e nessuno se ne accorge? Ci si accorge dell'errore solo il trimestre successivo: si confrontano le cifre con quelle del trimestre precedente e semplicemente non tornano. Sudori freddi istantanei! Aprite il vostro Excel e vi accorgete che il maledetto VLOOKUP() ha rilevato valori sbagliati perché qualcuno (siete stati voi?) ha sbagliato le colonne. È troppo pensare che non sono l'unico ad aver vissuto questa esperienza? O sono stato semplicemente pessimo nel mio lavoro?

C'è un rimedio per tutte queste esperienze che hanno sfiorato l'attacco di cuore.

SQL per il reporting finanziario moderno

Sì, il rimedio è l'utilizzo di SQL per il reporting finanziario. La scrittura di query SQL sostituisce tutti quei fogli Excel ingombranti.

Utilizzando l'SQL per il reporting finanziario, è possibile aggiungere e rimuovere facilmente i dati, unirli, filtrarli e aggregarli. Si possono fare cose sofisticate, come l'analisi delle serie temporali, il calcolo dei totali progressivi, delle medie mobili o il raggruppamento dei dati su più livelli. E potete farlo in modo più rapido e accurato rispetto a Excel. Ecco alcuni esempi di utilizzo di SQL per analizzare i dati finanziari.

In altre parole, SQL sostituisce la maggior parte del lavoro manuale. In altre parole, SQL sostituisce la maggior parte del lavoro manuale, riducendo notevolmente il numero di punti in cui possono verificarsi errori. I dati e i report saranno più accurati. In questo caso, potrete persino affermare che il report è corretto al 100% e garantirne la correttezza.

Produrrete analisi e report molto più velocemente e potrete rendere dinamico il vostro reporting finanziario. Una volta impostate le query SQL, è possibile salvarle e riutilizzarle ogni volta che è necessario creare un report. Non c'è problema: basta modificare le date della query, eseguire nuovamente la query ed ecco il vostro report, senza dover ripetere tutti i passaggi.

L'uso di SQL per la gestione dei dati finanziari vi dà maggiore indipendenza e controllo. Non dovrete più chiedere ai vostri colleghi più esperti di tecnologia di estrarre i dati dal database per voi. Non dovrete più aspettare che lo facciano loro. Non dovrete più aspettare (di nuovo!) che facciano la stessa cosa (di nuovo!) solo perché vi hanno dato i dati sbagliati. Vi hanno frainteso? O hanno semplicemente commesso un errore? Non è più una preoccupazione!

Con SQL potete ottenere i dati che volete e quando li volete.

Inoltre, i rapporti con i vostri colleghi miglioreranno, perché non dovranno più preoccuparsi di quella fastidiosa persona dell'ufficio finanziario.

Una porta verso un reporting finanziario più avanzato

L'utilizzo di SQL per la rendicontazione finanziaria migliora il vostro gioco. Apre le porte a tecniche di analisi finanziaria e di reporting più avanzate.

Ad esempio, SQL può integrarsi con altre tecnologie e software, come l'amato Excel. È possibile trovare in SQL strumenti di business intelligence (si pensi a Tableau, Power BI e Qlik Sense ) che aumentano le possibilità di creare report finanziari completi, visualizzazioni e dashboard.

Con SQL è possibile interrogare i database in sede e passare all'utilizzo delle tecnologie cloud. Si pensi ad Amazon Web Services (AWS), Microsoft Azure o Google Cloud.

La cosa migliore è che SQL può essere utilizzato per la modellazione finanziaria e le previsioni. Tutte le previsioni si basano su dati storici. È possibile utilizzare le query SQL in ambito finanziario per analizzare i dati finanziari storici, quindi applicare tecniche avanzate e prevedere le tendenze finanziarie:

  • Entrate
  • spese
  • Flussi di cassa
  • Vendite
  • Esigenze di inventario
  • Turnover dei clienti
  • Margine lordo
  • Capitale circolante
  • Profitto
  • Prezzi delle azioni
  • Tassi di cambio
  • Tassi di interesse
  • Dividendi
  • Rimborso del debito
  • Investimenti futuri
  • Punti di pareggio

Cosa fare ora?

L'unica risposta è iniziare a imparare SQL per il reporting finanziario. Il nostro SQL per principianti e il percorso di apprendimento SQL Reporting sono pensati per i professionisti della finanza. In questi corsi troverete scenari finanziari reali ed esercizi interattivi. Non solo imparerete la sintassi SQL, ma scoprirete anche come applicare queste competenze nel reporting finanziario.

Imparare l'SQL per la finanza

So che a volte è difficile rompere le abitudini, le vecchie "abbiamo sempre fatto così ".

Tuttavia, ignorare le nuove tecnologie che possono rendere il vostro lavoro migliore, più veloce, meno soggetto a errori e più avanzato non è saggio. L'SQL non è affatto nuovo: esiste dal 1974 (50 anni!) ed è stato ampiamente utilizzato a partire dagli anni Ottanta. È quindi giunto il momento di abbandonare Excel come strumento principale e iniziare a usare SQL.

Credetemi, lo so; anche per me Excel era tutto. L'SQL sembrava una stregoneria: scrivevi qualcosa su una schermata vuota, premevi play e i dati uscivano fuori. Devono esserci forze oscure dietro a tutto questo! Una volta superata la mia iniziale paura delle query SQL, mi sono reso conto di quanto SQL sia pratico per il reporting finanziario. Sembra quasi che sia stato creato per lavorare con i dati. Probabilmente perché lo era.

E non sono stato l'unico a fare questo passaggio. Vi invito quindi a iniziare con il nostro SQL per principianti corso e poi passare al percorso di apprendimento di SQL Reporting. Se avete bisogno di un'idea su cosa fare dopo, ecco alcuni suggerimenti su come affrontare l'apprendimento di SQL e alcuni dei migliori corsi SQL online per esperti finanziari.

Provate e noterete il cambiamento! Migliorerete i vostri processi di reporting. Ma soprattutto, sarete in grado di contribuire in modo più significativo al processo decisionale strategico della vostra azienda e persino di aumentarne la redditività.