• Non ci sono risultati.

Possibili risvolti futuri

Dai risultati emersi, soprattutto per quel che riguarda la realizzazione di un sistema predittivo sulle anomalie, appare evidente come sia necessaria un’importante attività di integrazione dei dati esistenti con altri dati provenienti da fonti esterne. Potrebbero rappresentare un esempio di tale integrazione i dati riguardanti il meteo, il traffico ed eventuali lavori lungo le autostrade.

Il presente lavoro di tesi potrebbe quindi essere ampliato, a seguito di tale integrazione, con il perfezionamento del modello di classificazione già realizzato e con una reale implementazione di un sistema di previsione delle anomalie.

Altro aspetto che potrebbe essere trattato riguarda invece l’estrazione di regole associative, al fine di mettere in evidenza eventuali relazioni nascoste all’interno dei dati, da intendersi sempre a posteriori della suddetta attività di integrazione dei dati.

RINGRAZIAMENTI

Ed eccomi qui, a scrivere l’ultimo atto di questo lungo capitolo della mia vita dal titolo “Carriera Universitaria”. Sono stati anni intensi, di scelte, di alti e bassi ma vissuti sempre in pieno e dei quali guardandomi indietro mi sento orgoglioso; orgoglioso per essere riuscito ad arrivare fino a qui, dove più e più volte ho dubitato di arrivare.

Si è vero ci ho messo un po’ più del dovuto, ma vi assicuro che c’è stato bisogno di tanta tenacia, di tanta perseveranza e anche di una buona dose di coraggio.

Tenacia, perseveranza e coraggio… le tre cose per cui più di ogni altra cosa devo ringraziare la mia famiglia. In più occasioni mi avete trasmesso la forza di continuare e andare avanti per conseguire questo traguardo, mi avete incoraggiato quando ho capito che il mio futuro probabilmente era da un’altra parte, lontano da casa e lontano da voi, mi avete sostenuto in tutti quei momenti in cui avrei preferito lasciare. Per tutti i sacrifici fatti dire GRAZIE è davvero troppo poco.

Cate… Sei arrivata in una sera senza senso di un periodo senza senso, a dare un senso a tutto il resto poi ci hai pensato tu!! GRAZIE per esserci sempre stata, e per esserci sempre, GRAZIE per aver sopportato i momenti no e averli trasformati in sciocchezze su cui riderci su. GRAZIE per essere stata un rifugio quando avevo bisogno di rigenerarmi e GRAZIE per essere arrivata così dal nulla, essere rimasta e aver dato un senso a tutto questo.

Tutta la bnova, soprattutto nelle persone di Stefano Celati, Andrea Romei e Serena Arrighi, per avermi dato modo di lavorare a questo progetto, per il supporto tecnico offertomi, per l’avermi fatto sentire a mio agio in un contesto a me nuovo e per l’infinita disponibilità sempre avuta nei miei confronti.

Il prof. Ruggieri, per la disponibilità sempre avuta nei miei confronti e per l’avermi seguito costantemente e in maniera semplicemente impeccabile durante la redazione di questo lavoro di tesi e più in generale in tutti questi mesi.

Alessandro, Giacomo, Antonietta, Filippo, Vitalba e Federica GRAZIE semplicemente per essere ed essere stati, insieme a Cate, semplicemente la mia famiglia pisana! GRAZIE per tutti i pranzi e le cene domenicali, GRAZIE per essere stati un punto di riferimento, GRAZIE per le serate spensierate e per i momenti più leggeri di questi anni. Li avete resi indimenticabili!

Già Pisa… ti ho amata praticamente dal primo giorno in cui sono arrivato, quell’aria giovane, quell’aria carica di sogni, di speranze e di aspettative che si respira passeggiando per le tue vie. Sogni, speranze e aspettative di noi ragazzi venuti a cercare la nostra strada, la nostra opportunità. Quell’opportunità che a casa nostra spesso fatichiamo a trovare. Quindi GRAZIE per avermi regalato la mia!

APPENDICE

Appendice A1: Query SQL per question complesse

/*

QUERY PER IL CALCOLO DELLE PERCENTUALI DI ANOMALIA, ONTIME PERFECTORDER E CONSEGNATO

*/

WITH v AS (

SELECT ragionesociale, anno, mese_num, count(*)as spedito, sum(anomalia)as anomalia,

sum(ontime) as ontime, sum(perfectorder) as perfect,

sum(case when v_stato_padre='C'then 1 else 0 end)as consegnato FROM fact_bolla,dim_tempo,dim_fornitore, dim_bolla

WHERE fk_dim_fornitore_pt=pk_dim_fornitore and fk_dim_bolla=pk_dim_bolla and

fk_dim_tempo_spedizione=pk_dim_tempo and {{fornitore}} and {{anno}} and {{data_range}}

GROUP BY ragionesociale, anno, mese_num ), v1 AS

(

SELECT mese_num,sum(spedito) AS totale_spedito, sum(anomalia) AS totale_anomalia, sum(ontime) as totale_ontime, sum(perfect) AS totale_perfect, sum(consegnato) AS totale_consegnato

FROM v

GROUP BY mese_num ORDER BY mese_num )

SELECT mese_num, (totale_anomalia/totale_spedito)*100 as perc_anomalia, (totale_ontime/totale_spedito)*100 as perc_ontime,

(totale_perfect/totale_spedito)*100 as perc_perfect, (totale_consegnato/totale_spedito)*100 as perc_consegnato FROM v1

/*

QUERY PER IL CALCOLO DELLA RICORRENZA DELLE PROBLEMATICHE DI ANOMALIA */

WITH bolla AS /*prendo le chiavi delle bolle con anomalie*/ (

SELECT fk_dim_bolla,anomalia

FROM fact_bolla, dim_ente, dim_cliente,dim_tempo,dim_bolla

WHERE fk_dim_bolla=pk_dim_bolla and pk_dim_ente=fk_dim_ente_carico and fk_dim_cliente_receiver=pk_dim_cliente and

fk_dim_tempo_spedizione=pk_dim_tempo and anomalia=1 [[and {{sender}}]]and [[{{receiver}}]]

[[and m_numcolli={{n_colli}}]][[and anno={{anno}}]] [[and {{data_range}}]]

),track AS

/*prendo la descrizione delle causali e le date e faccio il ranking partizionato sulla fk_dim_bolla ordinato rispetto alle date*/

(

SELECT bolla.fk_dim_bolla, anomalia, descrizione, DATAEVENTO, DATAREGISTRAZIONEEVENTO, ROW_NUMBER() over(partition by

bolla.fk_dim_bolla order by DATAEVENTO, DATAREGISTRAZIONEEVENTO asc ) as number_row

FROM bolla,fact_tracking,dim_causale

WHERE fact_tracking.fk_dim_bolla=bolla.fk_dim_bolla and

fk_dim_causale=pk_dim_causale and descrizionepadre='ANOMALIA' ),tmp AS

(

/*calcolo il numero delle anomalie per decrizione con ranking=1*/ SELECT descrizione,sum(anomalia)as n

FROM track

WHERE /*ranking=1 and*/ number_row=1 GROUP BY descrizione ), tot AS ( SELECT sum (n) as t FROM tmp )

SELECT descrizione,n,(n/t)*100 as percentuale FROM tmp,tot

GROUP BY descrizione,n,t ORDER BY percentuale desc

/*

QUERY PER IL CALCOLO DELLA KPI PER FORNITORE */

SELECT ragionesociale, count(*) as spedizioni, sum(anomalia) as anomalie, (sum(anomalia)/count(*))*100 as percentuale, 2-

((sum(anomalia)/count(*))*100) as KPI FROM fact_bolla,dim_fornitore,dim_bolla,dim_tempo

WHERE fk_dim_fornitore_ut=pk_dim_fornitore and fk_dim_bolla=pk_dim_bolla and fk_dim_tempo_spedizione=pk_dim_tempo and {{data_range}} [[and anno={{anno}}]]

GROUP BY ragionesociale HAVING count(*)>0 ORDER BY ragionesociale

/*

QUERY PER IL CALCOLO DELLA TOP 5 DELLE CAUSALI DI ANOMALIA PER ANNO */

WITH bolla AS

/*prendo le chiavi delle bolle con anomalie e il relativo anno di spedizione*/ (

SELECT fk_dim_bolla,anomalia,anno

FROM fact_bolla, dim_ente, dim_cliente,dim_tempo,dim_bolla

WHERE fk_dim_bolla=pk_dim_bolla and pk_dim_ente=fk_dim_ente_carico and fk_dim_cliente_receiver=pk_dim_cliente and

fk_dim_tempo_spedizione=pk_dim_tempo and anomalia=1

),t AS /*conto il numero di bolle con anomalia per anno*/ (

SELECT anno,sum(anomalia) AS tot FROM bolla

GROUP BY anno ),track AS

/*prendo la descrizione delle causali e le date e faccio il ranking partizionato sulla fk_dim_bolla ordinato rispetto alle date*/

(

SELECT bolla.fk_dim_bolla, anomalia, anno, descrizione,

DATAEVENTO, DATAREGISTRAZIONEEVENTO, rank() over(partition by bolla.fk_dim_bolla order by DATAEVENTO, DATAREGISTRAZIONEEVENTO asc ) as ranking

FROM bolla,fact_tracking,dim_causale

WHERE fact_tracking.fk_dim_bolla=bolla.fk_dim_bolla and

fk_dim_causale=pk_dim_causale and descrizionepadre='ANOMALIA' ),tmp AS

/*calcolo le percentuali solo per le anomalie con ranking=1 e ne faccio il ranking partizionato sull'anno e ordinato rispetto alla percentuale*/ (

SELECT track.anno,descrizione,sum(anomalia)as n, (sum(anomalia)/tot)*100 AS percentuale,

rank() over(partition by track.anno order by (sum(anomalia)/tot)*100 desc) AS rnk

FROM track,t

WHERE ranking=1 and t.anno=track.anno GROUP BY track.anno,descrizione,tot HAVING (sum(anomalia)/tot)*100>2 ORDER BY anno,percentuale desc )

SELECT anno,descrizione,n,percentuale FROM tmp

WHERE rnk<=5 /*prendo le top 5 causali di anomalia per anno*/ ORDER BY anno,rnk

/*

QUERY PER IL CALCOLO DELL’INCIDENZA DELLE ANOMALIE ON TIME PER ANNO */

WITH ontime_view AS (

SELECT anno,sum (anomalia) as anomalie_ontime FROM fact_bolla,dim_tempo

WHERE fk_dim_tempo_spedizione=pk_dim_tempo and anomalia=1 and ontime=1

GROUP BY anno ), an_tot AS

(

SELECT anno,sum (anomalia) as anomalie_tot FROM fact_bolla,dim_tempo

WHERE fk_dim_tempo_spedizione=pk_dim_tempo and anomalia=1 GROUP BY anno

)

SELECT an_tot.anno, anomalie_tot,anomalie_ontime,

(anomalie_ontime/anomalie_tot)*100 as Percentuale FROM ontime_view,an_tot

WHERE an_tot.anno=ontime_view.anno ORDER BY anno

/* QUERY PER IL CALCOLO DEL DETTAGLIO DELLE TOP 50 PROBLEMATICHE DI ANOMALIA PER ENTE DI CARICO E CLIENTE RECEIVER*/

WITH track AS

/*prendo le chiavi delle bolle con anomalie insieme all'ente di carico e al cliente receiver*/

(

SELECT fact_bolla.fk_dim_bolla,anomalia,dim_ente.ragionesociale as ente_carico,dim_cliente.ragionesociale as

cliente_receiver,descrizione,

ROW_NUMBER() over(partition by fact_bolla.fk_dim_bolla order by DATAEVENTO, DATAREGISTRAZIONEEVENTO asc ) as number_row

FROM fact_bolla, dim_ente, dim_cliente, dim_tempo, dim_bolla, fact_tracking, dim_causale

WHERE fact_bolla.fk_dim_bolla=pk_dim_bolla and pk_dim_ente=fk_dim_ente_carico and

fk_dim_cliente_receiver=pk_dim_cliente and fk_dim_tempo_spedizione=pk_dim_tempo

and fact_tracking.fk_dim_bolla=fact_bolla.fk_dim_bolla and fk_dim_causale=pk_dim_causale and descrizionepadre='ANOMALIA' and descrizione!='NA'

and anomalia=1 and dim_ente.ragionesociale!='NA' and dim_cliente.ragionesociale!='NA'

[[and {{sender}}]]and [[{{receiver}}]]

[[and m_numcolli={{n_colli}}]][[and anno={{anno}}]] [[and {{data_range}}]]and {{descrizione}}

),t AS /*conto il numero di bolle con anomalia*/ (

SELECT sum(anomalia) as tot FROM fact_bolla WHERE anomalia =1 ) SELECT descrizione,ente_carico,cliente_receiver,sum(anomalia)as n, (sum(anomalia)/tot)*100 as percentuale FROM track,t

WHERE /*ranking=1 and*/ number_row=1

GROUP BY descrizione,ente_carico,cliente_receiver,tot ORDER BY percentuale DESC

Appendice A2: Query di creazione dei dataset

/*

QUERY PER LA CREAZIONE DEL DATASET DI CLUSTERING DELLE ANOMALIE */

WITH bolla_fornitore_servizio_stato_enteC_clienteS_geoC_tempoC AS (

SELECT pk_dim_bolla, numerodocriferimento, datadocriferimento,

dataspedizione,dataconsegnalt, dataconsegnaoriginale, statodoc, desc_stato_doc, tipodataprevcons, fk_dim_tempo_spedizione,

k_dim_tempo_consegna, fk_dim_cliente_receiver, fk_dim_ente_scarico, fk_dim_geo_scarico, fk_dim_geo_carico, fk_dim_stato, m_pesolordo, m_pesonetto, m_volume, m_numcolli, m_numpezzi, m_tempoconsegna, m_temporitardo, ontime, anomalia, perfectorder, flg_otapo, data_consegna_prevista, data_consegna, data_consegna_rif,

dim_fornitore.ragionesociale AS fornitore, dim_fornitore.localita AS localita_fornitore, desclivello2 AS modalita_spedizione,

desclivello1 AS desc_modalita_spedizione, descrizionepadre AS stato, dim_stato.descrizione AS desc_stato, dim_ente.ragionesociale AS ente_carico, dim_cliente.ragionesociale AS cliente_sender,

dim_cliente.localita AS localita_cliente_sender, dim_cliente.nazione AS nazione_cliente_sender, dim_cliente.categoriacliente AS

categoria_cliente_sender, continente AS continente_carico, continente_div AS continente_div_carico, dim_geo.nazione AS nazione_carico, regione AS regione_carico, provincia AS provincia_carico, latitudine AS lat_carico, longitudine AS long_carico, latitudine_provincia AS lat_prov_carico,

longitudine_provincia AS long_prov_carico,latitudine_regione AS lat_reg_carico,longitudine_regione AS long_reg_carico,

latitudine_nazione AS lat_naz_carico, longitudine_nazione AS long_naz_carico, latitudine_continente AS lat_cont_carico, longitudine_continente AS long_cont_carico, datarif AS data_carico,anno AS anno_carico,mese_num AS

mese_num_carico,giorno_mese AS giorno_mese_carico, mese_string_full AS mese_string_carico,trimestre_string AS

trimestre_string_carico,trimestre_num AS trimestre_num_carico, quadrimestre_string AS quadrimestre_string_carico, quadrimestre_num AS quadrimestre_num_carico,semestre_string AS

semestre_string_carico, semestre_num AS semestre_num_carico FROM dim_bolla, fact_bolla, dim_fornitore, dim_serviziomezzo,

dim_stato, dim_ente, dim_cliente, dim_geo, dim_tempo WHERE fk_dim_bolla=pk_dim_bolla AND

fk_dim_fornitore_ut=pk_dim_fornitore AND fk_dim_serviziomezzo_ut=pk_dim_serviziomezzo AND fk_dim_stato=dim_stato.pk_dim_stato AND fk_dim_ente_carico=pk_dim_ente AND fk_dim_cliente_sender=pk_dim_cliente AND fk_dim_geo_carico=pk_dim_geo AND

fk_dim_tempo_spedizione=pk_dim_tempo AND anomalia=1 ),bolla AS

(

dataspedizione,dataconsegnalt, dataconsegnaoriginale, statodoc, desc_stato_doc, tipodataprevcons, fk_dim_tempo_spedizione, fk_dim_tempo_consegna, m_pesolordo, m_pesonetto, m_volume, m_numcolli, m_numpezzi, m_tempoconsegna, m_temporitardo, ontime, anomalia, perfectorder, flg_otapo, data_consegna_prevista, data_consegna, data_consegna_rif, fornitore, localita_fornitore, modalita_spedizione, desc_modalita_spedizione, stato, desc_stato, ente_carico, cliente_sender, localita_cliente_sender,

nazione_cliente_sender, categoria_cliente_sender,continente_carico, continente_div_carico,nazione_carico, regione_carico,

provincia_carico, lat_carico, long_carico, lat_prov_carico,

long_prov_carico, lat_reg_carico, long_reg_carico, lat_naz_carico, long_naz_carico, lat_cont_carico, long_cont_carico, data_carico, anno_carico,mese_num_carico, giorno_mese_carico, mese_string_carico, trimestre_string_carico, trimestre_num_carico,

quadrimestre_string_carico,

quadrimestre_num_carico,semestre_string_carico,semestre_num_carico,d im_ente.ragionesociale AS ente_scarico,dim_cliente.ragionesociale AS cliente_receiver, dim_cliente.localita AS localita_cliente_receiver, dim_cliente.nazione AS nazione_cliente_receiver,

dim_cliente.categoriacliente AS categoria_cliente_receiver, continente AS continente_scarico, continente_div AS

continente_div_scarico, dim_geo.nazione AS nazione_scarico, regione AS regione_scarico, provincia AS provincia_scarico, latitudine AS lat_scarico, longitudine AS long_scarico, latitudine_provincia AS at_prov_scarico,longitudine_provincia AS

long_prov_scarico,latitudine_regione AS

lat_reg_scarico,longitudine_regione AS long_reg_scarico, latitudine_nazione AS lat_naz_scarico, longitudine_nazione AS long_naz_scarico, latitudine_continente AS

lat_cont_scarico,longitudine_continente AS long_cont_scarico, datarif AS data_scarico,anno AS anno_scarico,mese_num AS

mese_num_scarico,giorno_mese AS giorno_mese_scarico,mese_string_full AS mese_string_scarico,trimestre_string AS

trimestre_string_scarico,trimestre_num AS trimestre_num_scarico, quadrimestre_string AS quadrimestre_string_scarico, quadrimestre_num AS quadrimestre_num_scarico,semestre_string AS

semestre_string_scarico, semestre_num AS semestre_num_scarico FROM bolla_fornitore_servizio_stato_enteC_clienteS_geoC_tempoC,

dim_ente, dim_cliente, dim_geo, dim_tempo WHERE fk_dim_ente_scarico=pk_dim_ente AND

fk_dim_cliente_receiver=pk_dim_cliente AND

fk_dim_geo_scarico=pk_dim_geo AND fk_dim_tempo_consegna=pk_dim_tempo ), tracking_bolla AS

(

SELECT pk_dim_bolla, numerodocriferimento, datadocriferimento, dataspedizione,dataconsegnalt, dataconsegnaoriginale, bolla.statodoc, desc_stato_doc,tipodataprevcons,

fk_dim_tempo_spedizione, fk_dim_tempo_consegna, m_pesolordo, m_pesonetto, m_volume, m_numcolli, m_numpezzi,

m_tempoconsegna,m_temporitardo, ontime, anomalia, perfectorder, flg_otapo, data_consegna_prevista, data_consegna, data_consegna_rif, fornitore, localita_fornitore, modalita_spedizione,

desc_modalita_spedizione, stato, desc_stato, ente_carico,

cliente_sender, localita_cliente_sender, nazione_cliente_sender, categoria_cliente_sender, continente_carico, continente_div_carico,

long_carico, lat_prov_carico,long_prov_carico, lat_reg_carico, long_reg_carico, lat_naz_carico, long_naz_carico, lat_cont_carico, long_cont_carico, data_carico, anno_carico, mese_num_carico, giorno_mese_carico, mese_string_carico, trimestre_string_carico, trimestre_num_carico, quadrimestre_string_carico,

quadrimestre_num_carico, semestre_string_carico, semestre_num_carico, ente_scarico, cliente_receiver, localita_cliente_receiver, nazione_cliente_receiver, categoria_cliente_receiver, continente_scarico, continente_div_scarico, nazione_scarico,

regione_scarico,provincia_scarico, lat_scarico, long_scarico, lat_prov_scarico,long_prov_scarico, lat_reg_scarico,

long_reg_scarico, lat_naz_scarico, long_naz_scarico,

lat_cont_scarico,long_cont_scarico, data_scarico, anno_scarico, mese_num_scarico, giorno_mese_scarico, mese_string_scarico,

trimestre_string_scarico,trimestre_num_scarico,quadrimestre_string_s carico, quadrimestre_num_scarico, semestre_string_scarico,

semestre_num_scarico,

dim_causale.descrizionepadre AS causale,dim_causale.descrizione AS descr_causale, datarif AS data_evento, anno AS anno_evento,mese_num AS mese_num_evento, giorno_mese AS giorno_mese_evento,

mese_string_full AS mese_string_evento, trimestre_string AS trimestre_string_evento, trimestre_num AS trimestre_num_evento, quadrimestre_string AS quadrimestre_string_evento, quadrimestre_num AS quadrimestre_num_evento, semestre_string AS

semestre_string_evento, semestre_num AS semestre_num_evento, rank() over(partition by bolla.pk_dim_bolla order by DATAEVENTO,

DATAREGISTRAZIONEEVENTO asc ) as ranking FROM bolla,fact_tracking,dim_causale,dim_tempo

WHERE bolla.pk_dim_bolla=fact_tracking.fk_dim_bolla AND

fk_dim_causale=pk_dim_causale AND fk_tempo_dataevento=pk_dim_tempo AND descrizionepadre='ANOMALIA'

)

SELECT *

FROM tracking_bolla WHERE ranking=1

/*

QUERY PER LA CREAZIONE DEL DATASET DI CLUSTERING DELLE SPEDIZIONI ANNO 2016 */

WITH bolla_fornitore_servizio_stato_enteC_clienteS_geoC_tempoC AS (

SELECT fk_dim_cliente_receiver, fk_dim_ente_scarico,

fk_dim_geo_scarico,fk_dim_geo_carico, fk_dim_tempo_consegna, m_pesolordo, m_pesonetto, m_volume, m_numcolli, m_numpezzi, m_tempoconsegna ,m_temporitardo, ontime, anomalia, perfectorder, dim_fornitore.ragionesociale AS fornitore,

dim_fornitore.localita AS localita_fornitore, desclivello2 AS modalita_spedizione, desclivello1 AS desc_modalita_spedizione, descrizionepadre AS stato, dim_stato.descrizione AS desc_stato, dim_ente.ragionesociale AS ente_carico,continente AS

continente_carico, continente_div AS continente_div_carico, dim_geo.nazione AS nazione_carico, regione AS regione_carico,

provincia AS provincia_carico, latitudine AS lat_carico, longitudine AS long_carico, latitudine_provincia AS lat_prov_carico,

longitudine_provincia AS long_prov_carico, latitudine_regione AS lat_reg_carico, longitudine_regione AS long_reg_carico,

latitudine_nazione AS lat_naz_carico, longitudine_nazione AS long_naz_carico, latitudine_continente AS lat_cont_carico, longitudine_continente AS long_cont_carico, datarif AS

data_carico,anno AS anno_carico,giorno_mese AS giorno_mese_carico, mese_string_full AS mese_string_carico, trimestre_string AS

trimestre_string_carico, quadrimestre_string AS quadrimestre_string_carico, semestre_string AS semestre_string_carico

FROM fact_bolla, dim_fornitore, dim_serviziomezzo, dim_stato, dim_ente, dim_geo,dim_tempo

WHERE fk_dim_fornitore_ut=pk_dim_fornitore AND fk_dim_serviziomezzo_ut=pk_dim_serviziomezzo AND fk_dim_stato=dim_stato.pk_dim_stato AND fk_dim_ente_carico=pk_dim_ente

AND fk_dim_geo_carico=pk_dim_geo AND

fk_dim_tempo_spedizione=pk_dim_tempo AND dim_tempo.anno=2016 ),bolla AS

(

SELECT m_pesolordo, m_pesonetto, m_volume, m_numcolli, m_numpezzi, m_tempoconsegna, m_temporitardo, ontime, anomalia, perfectorder, fornitore, localita_fornitore,

modalita_spedizione,desc_modalita_spedizione, stato, desc_stato, ente_carico,continente_carico, continente_div_carico,nazione_carico, regione_carico, provincia_carico, lat_carico,

long_carico,lat_prov_carico,

long_prov_carico, lat_reg_carico, long_reg_carico, lat_naz_carico, long_naz_carico, lat_cont_carico, long_cont_carico, data_carico, anno_carico, giorno_mese_carico, mese_string_carico,

trimestre_string_carico, quadrimestre_string_carico,

semestre_string_carico,dim_ente.ragionesociale AS ente_scarico, dim_cliente.ragionesociale AS cliente_receiver, dim_cliente.localita AS localita_cliente_receiver, dim_cliente.nazione AS

nazione_cliente_receiver, dim_cliente.categoriacliente AS categoria_cliente_receiver,continente AS continente_scarico,

continente_div AS continente_div_scarico, dim_geo.nazione AS nazione_scarico, regione AS regione_scarico,

provincia AS provincia_scarico, latitudine AS lat_scarico, longitudine AS long_scarico, latitudine_provincia AS lat_prov_scarico,longitudine_provincia AS

long_prov_scarico,latitudine_regione AS

lat_reg_scarico,longitudine_regione AS long_reg_scarico,

Documenti correlati