| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 
 | ALTER PROCEDURE [theriaque].[GET_THE_GTIAM_ID] 
  @LISTESP VARCHAR(255),
  @GRAVITE INT
AS
DECLARE	@IT1SP_FIT_CODE_FK_PK INT		
DECLARE	@CDF_NOM VARCHAR(250)  		
DECLARE	@SP_NOM  VARCHAR(250)		
DECLARE	@SP_NOM2 VARCHAR(250) 		
DECLARE	@IT1SP_SP_CODE_FK_PK INT		
DECLARE	@IT2SP_SP_CODE_FK_PK INT		
DECLARE	@FITNA_CDF_NAIT_CODE_FK_PK INT	
DECLARE	@idcombinaison VARCHAR(250) 
DECLARE @row_count INT
 
create TABLE #tmp_gtiam1( 
	IDINTER INT,
	VALIDE VARCHAR(250),
	TERME_1 VARCHAR(250),
	TERME_2 VARCHAR(250),
	ID_T1 INT,
	ID_T2 INT,
	NIVEAU INT,
	comb VARCHAR(250) 
)
 
create TABLE #tmp_SP( 
	SP INT 
)
 
 insert into #tmp_SP(
      [SP]) exec [theriaque].[Core_SP_SplitString] @LISTESP, ','
 
--select * from #tmp_SP;
 
DECLARE curseur1 CURSOR FOR
	SELECT  t1.IT1SP_FIT_CODE_FK_PK AS IDINTER , 		
		t5.CDF_NOM AS VALIDE,  		
		t6.SP_NOM  AS TERME_1, 		
		t7.SP_NOM  AS TERME_2, 	
		t1.IT1SP_SP_CODE_FK_PK AS ID_T1, 		
		t2.IT2SP_SP_CODE_FK_PK AS ID_T2, 	
		t3.FITNA_CDF_NAIT_CODE_FK_PK 	AS NIVEAU  ,	
		CASE WHEN t1.IT1SP_SP_CODE_FK_PK < t2.IT2SP_SP_CODE_FK_PK 
			THEN CONVERT(varchar(5),t1.IT1SP_FIT_CODE_FK_PK) + '-' + CONVERT(varchar(5),t1.IT1SP_SP_CODE_FK_PK) + '-' + CONVERT(varchar(5),t2.IT2SP_SP_CODE_FK_PK) + '-' + CONVERT(varchar(5),t3.FITNA_CDF_NAIT_CODE_FK_PK)
			ELSE CONVERT(varchar(5),t1.IT1SP_FIT_CODE_FK_PK) + '-' + CONVERT(varchar(5),t2.IT2SP_SP_CODE_FK_PK) + '-' + CONVERT(varchar(5),t1.IT1SP_SP_CODE_FK_PK) + '-' + CONVERT(varchar(5),t3.FITNA_CDF_NAIT_CODE_FK_PK)
			END AS combinaison 
		FROM   theriaque.IT1SP_TERME1SPECIALITE   t1,		
		theriaque.IT2SP_TERME2SPECIALITE   t2,		
		theriaque.FITNA_INTERACTION_NATURE t3,		
		theriaque.FITVA_NIVEAU_VALIDATION  t4,		
		theriaque.CDF_CODIF                t5,		    
		theriaque.SP_SPECIALITE            t6,		
		theriaque.SP_SPECIALITE            t7 		
		WHERE  t1.IT1SP_FIT_CODE_FK_PK = t2.IT2SP_FIT_CODE_FK_PK 		
		AND    t3.FITNA_FIT_CODE_FK_PK = t1.IT1SP_FIT_CODE_FK_PK 		
		AND    t4.FITVA_FIT_CODE_FK_PK = t1.IT1SP_FIT_CODE_FK_PK 		
		AND    t5.CDF_CODE_PK          = t4.FITVA_CDF_VAIT_CODE_FK_PK   		
		AND    t6.SP_CODE_SQ_PK        = t1.IT1SP_SP_CODE_FK_PK  		
		AND    t7.SP_CODE_SQ_PK        = t2.IT2SP_SP_CODE_FK_PK  		
		AND    t4.FITVA_CDF_VAIT_CODE_FK_PK = 1 		
		AND    t5.CDF_NUMERO_PK        = 'IV'		
		AND    t1.IT1SP_SP_CODE_FK_PK  <> t2.IT2SP_SP_CODE_FK_PK 		
		AND    t1.IT1SP_SP_CODE_FK_PK  IN (select SP from #tmp_SP) 	
		AND    t2.IT2SP_SP_CODE_FK_PK  IN (select SP from #tmp_SP) 		
		AND    t3.FITNA_CDF_NAIT_CODE_FK_PK  <= @GRAVITE				
		AND    EXISTS ( SELECT 1,5		/* IT1SP_FIT_CODE_FK_PK , IT1SP_SP_CODE_FK_PK*/
						FROM   theriaque.IT1SP_TERME1SPECIALITE 		
						WHERE  t2.IT2SP_SP_CODE_FK_PK  = IT1SP_SP_CODE_FK_PK  		
						AND    t1.IT1SP_FIT_CODE_FK_PK = IT1SP_FIT_CODE_FK_PK ) 	
		UNION 		
		SELECT  t1.IT1SP_FIT_CODE_FK_PK AS IDINTER ,		
		t5.CDF_NOM AS VALIDE,  		
		t6.SP_NOM  AS TERME_1, 		
		t7.SP_NOM  AS TERME_2, 		
		t1.IT1SP_SP_CODE_FK_PK AS ID_T1,		
		t2.IT2SP_SP_CODE_FK_PK AS ID_T2,		
		t3.FITNA_CDF_NAIT_CODE_FK_PK 	AS NIVEAU  ,	
		CASE WHEN t1.IT1SP_SP_CODE_FK_PK < t2.IT2SP_SP_CODE_FK_PK 
			THEN CONVERT(varchar(5),t1.IT1SP_FIT_CODE_FK_PK) + '-' + CONVERT(varchar(5),t1.IT1SP_SP_CODE_FK_PK) + '-' + CONVERT(varchar(5),t2.IT2SP_SP_CODE_FK_PK) + '-' + CONVERT(varchar(5),t3.FITNA_CDF_NAIT_CODE_FK_PK)
			ELSE CONVERT(varchar(5),t1.IT1SP_FIT_CODE_FK_PK) + '-' + CONVERT(varchar(5),t2.IT2SP_SP_CODE_FK_PK) + '-' + CONVERT(varchar(5),t1.IT1SP_SP_CODE_FK_PK) + '-' + CONVERT(varchar(5),t3.FITNA_CDF_NAIT_CODE_FK_PK)
			END AS combinaison 
		FROM   theriaque.IT1SP_TERME1SPECIALITE   t1,		
		theriaque.IT2SP_TERME2SPECIALITE   t2,		
		theriaque.FITNA_INTERACTION_NATURE t3,		
		theriaque.FITVA_NIVEAU_VALIDATION  t4,		
		theriaque.CDF_CODIF                t5,		
		theriaque.SP_SPECIALITE            t6,		
		theriaque.SP_SPECIALITE            t7 		
		WHERE  t1.IT1SP_FIT_CODE_FK_PK = t2.IT2SP_FIT_CODE_FK_PK 		
		AND    t3.FITNA_FIT_CODE_FK_PK = t1.IT1SP_FIT_CODE_FK_PK 		
		AND    t4.FITVA_FIT_CODE_FK_PK = t1.IT1SP_FIT_CODE_FK_PK 		
		AND    t5.CDF_CODE_PK          = t4.FITVA_CDF_VAIT_CODE_FK_PK   		
		AND    t6.SP_CODE_SQ_PK        = t1.IT1SP_SP_CODE_FK_PK 		
		AND    t7.SP_CODE_SQ_PK        = t2.IT2SP_SP_CODE_FK_PK 		
		AND    t4.FITVA_CDF_VAIT_CODE_FK_PK = 1 		
		AND    t5.CDF_NUMERO_PK        = 'IV'		
		AND    t1.IT1SP_SP_CODE_FK_PK  <> t2.IT2SP_SP_CODE_FK_PK        		
		AND    t1.IT1SP_SP_CODE_FK_PK  IN (select SP from #tmp_SP) 		
		AND    t2.IT2SP_SP_CODE_FK_PK  IN (select SP from #tmp_SP) 		
		AND    t3.FITNA_CDF_NAIT_CODE_FK_PK  <= @GRAVITE		
		AND    NOT EXISTS ( SELECT  1,5		
							FROM   theriaque.IT1SP_TERME1SPECIALITE 		
							WHERE  t2.IT2SP_SP_CODE_FK_PK  = IT1SP_SP_CODE_FK_PK  		
							AND    t1.IT1SP_FIT_CODE_FK_PK = IT1SP_FIT_CODE_FK_PK)	
	ORDER BY 1 
 
OPEN curseur1
FETCH NEXT FROM curseur1 
INTO @IT1SP_FIT_CODE_FK_PK ,		
	@CDF_NOM , 		
	@SP_NOM  ,		
	@SP_NOM2  ,	
	@IT1SP_SP_CODE_FK_PK ,		
	@IT2SP_SP_CODE_FK_PK ,		
	@FITNA_CDF_NAIT_CODE_FK_PK ,	
	@idcombinaison 
WHILE @@FETCH_STATUS = 0
BEGIN
	SELECT @row_count = COUNT(*) FROM #tmp_gtiam1 WHERE comb = @idcombinaison
	IF(@row_count=0)
	BEGIN
	INSERT #tmp_gtiam1 SELECT @IT1SP_FIT_CODE_FK_PK ,		
								@CDF_NOM , 		
								@SP_NOM  ,		
								@SP_NOM2  ,	
								@IT1SP_SP_CODE_FK_PK ,		
								@IT2SP_SP_CODE_FK_PK ,		
								@FITNA_CDF_NAIT_CODE_FK_PK ,	
								@idcombinaison 
	END
FETCH NEXT FROM curseur1 INTO @IT1SP_FIT_CODE_FK_PK ,		
	@CDF_NOM , 		
	@SP_NOM  ,		
	@SP_NOM2  ,	
	@IT1SP_SP_CODE_FK_PK ,		
	@IT2SP_SP_CODE_FK_PK ,		
	@FITNA_CDF_NAIT_CODE_FK_PK ,	
	@idcombinaison  
 
END
CLOSE curseur1
select IDINTER, VALIDE, TERME_1, TERME_2, ID_T1, ID_T2, NIVEAU from #tmp_gtiam1
DROP TABLE #tmp_gtiam1
DROP TABLE #tmp_SP
DEALLOCATE curseur1' | 
Partager