it should be
SELECT p.turno,
p.data,
COALESCE(q.PezziBuono,0) AS PezziBuono,
COALESCE(q.PezziCattivi,0) AS PezziCattivi
FROM
(
SELECT *
FROM (SELECT DISTINCT Turno FROM sottostante) m
CROSS JOIN (SELECT DISTINCT data FROM sottostante)n
)p
LEFT JOIN (SELECT Turno,data,SUM(PezziBuoni) AS PezziBuoni, SUM(PezziCattivi) AS PezziCattivi
FROM sottostante
GROUP BY Turno,data
) q
ON q.Turno = p.Turno
AND q.data = p.data
------------------------------------------------------------------------------------------------------
SQL Server MVP
http://visakhm.blogspot.com/