SET @idservizio:=0
;
SET @tmp:=''
;
INSERT INTO **main_table**
(
id,idcontatto
,data,idtipologia_servizio,idtipologia_intervento,tipologia_intervento
,ora_inizio,ora_fine,km,importo
,numero_servizio,foglio_viaggio,codice_servizio
,idpersona_fatturazione,assistiti
,idautista,infe_importo
)
SELECT s.id
, s.idcontatto
, s.data
, ts.id AS idtipologia_servizio
, ti.id AS idtipologia_intervento
, CONCAT(ts.nome,' - ',ti.nome) AS tipologia_intervento
, SUBSTR(s.orario_inizio_servizio,1,5) AS ora_inizio
, SUBSTR(s.orario_fine_servizio,1,5) AS ora_fine
, CAST(s.km_da_addebitare AS DECIMAL(10,0)) AS km
, CAST(s.importo AS DECIMAL(12,2)) AS importo
, CAST(s.numero_servizio AS DECIMAL(10,0)) AS numero_servizio
, CAST(s.foglio_viaggio AS DECIMAL(10,0)) AS folgio_viaggio
, s.codice_servizio
, s.idpersona_fatturazione

, GROUP_CONCAT(DISTINCT TRIM(CONCAT(IFNULL(p_assi.cognome,''),' ',IFNULL(p_assi.nome,''))) ORDER BY s_assi.id ASC SEPARATOR ' - ') AS assistiti

, autista.id AS idautista
, CAST(IFNULL(ti.cod1,0) AS DECIMAL(12,2))  AS infe_importo

FROM **DB**.s_servizi AS s

LEFT JOIN **DB**.s_servizi_assistiti AS s_assi ON (s.id=s_assi.idservizio AND s.idcontatto=s_assi.idcontatto)
LEFT JOIN **DB**.a_assistiti AS a_assi ON (s_assi.idassistito=a_assi.id AND s_assi.idcontatto=a_assi.idcontatto)
LEFT JOIN **DB**.a_anapersone AS p_assi ON (a_assi.idpersona=p_assi.id AND a_assi.idcontatto=p_assi.idcontatto)

INNER JOIN **DB**.s_tipologie_intervento AS ti ON (s.idtipologia_intervento=ti.id AND s.idcontatto=ti.idcontatto)
INNER JOIN **DB**.s_tipologie_servizio AS ts ON (ti.idtipologiaservizio=ts.id AND ti.idcontatto=ts.idcontatto)
INNER JOIN **DB**.a_anapersone AS persona_fatturazione ON (s.idpersona_fatturazione=persona_fatturazione.id AND s.idcontatto=persona_fatturazione.idcontatto)

LEFT JOIN **DB**.s_tariffazioni AS ta ON (ti.idtariffazione=ta.id AND ti.idcontatto=ta.idcontatto)
LEFT JOIN **DB**.s_luoghi AS lp ON (s.idluogo_partenza=lp.id AND s.idcontatto=lp.idcontatto)
LEFT JOIN **DB**.a_citta AS cp ON (lp.idcitta=cp.id AND lp.idcontatto=cp.idcontatto)
LEFT JOIN **DB**.s_luoghi AS la ON (s.idluogo_arrivo=la.id AND s.idcontatto=la.idcontatto)
LEFT JOIN **DB**.a_citta AS ca ON (la.idcitta=ca.id AND la.idcontatto=ca.idcontatto)
LEFT JOIN **DB**.s_automezzi AS a ON (s.idautomezzo=a.id AND s.idcontatto=a.idcontatto)
LEFT JOIN **DB**.a_anapersone AS autista ON (s.idautista=autista.id AND s.idcontatto=autista.idcontatto)

**WHERE**
AND s.prenotata_incorso_effettuata='E' AND s.fatturato=0 AND s.idpersona_fatturazione IS NOT NULL

GROUP BY s.id
ORDER BY s.idpersona_fatturazione, s.data, s.orario_inizio_servizio, s.orario_fine_servizio, s.id
;
CHECK:-100:SELECT NOT EXISTS(SELECT 1 FROM **main_table** LIMIT 1) AS _stop