--[C6Mart].[GESTIONE_C6_S_Vincoli] 3
CREATE procedure [C6Mart].[GESTIONE_C6_S_Vincoli]
@idModello as int
AS
BEGIN
	SET NOCOUNT ON;
SELECT    DISTINCT a.IDVincoloSezioneFisica, 
		  R6_Vincolo_SezioneFisica.SezioneFisica,
		  a.cardinalita AS Cardinalita, 
		  c.CodiceVincoloApplicativo, 
		  c.VincoloApplicativo                      
FROM         
(
  SELECT R6Sezione_Vincolo.IDVincolo, 
		   COUNT(*) AS cardinalita, 
		   R6Sezione_Vincolo.IDVincoloSezioneFisica
   FROM    ReportSezionePers 
		   INNER JOIN R6Sezione_Vincolo ON ReportSezionePers.IdSezione = R6Sezione_Vincolo.IDSezione
   WHERE   ReportSezionePers.IdReport = @idModello
   GROUP BY R6Sezione_Vincolo.IDVincolo, R6Sezione_Vincolo.IDVincoloSezioneFisica
) AS a 
INNER JOIN  R6CardinalitaVincolo AS b ON a.IDVincolo = b.IDVincolo AND a.cardinalita = b.Cardinalita 
INNER JOIN  R6Cardinalita_VincoloApplicativo AS c ON b.id = c.IDCardinalita 
INNER JOIN  R6_Vincolo_SezioneFisica ON a.IDVincoloSezioneFisica = R6_Vincolo_SezioneFisica.IDVincoloSezioneFisica
END