salut tout le monde

J'ai besoin d'aide ...

Je souhaiterais crée un tableau qui contient deux colonnes (ex: val1, val2)

j'utilise pour cela la fonction insert :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
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
SET NOCOUNT ON 
	DECLARE @StartDate DateTime 
	DECLARE @val2 table(poste1 real,poste2 real);
	DECLARE @EndDate DateTime 
	DECLARE @IdxDate DateTime
 
	SET @StartDate = STR(year(GETDATE())) + '/' + STR(month(GETDATE())) + '/' + '01'
	SET @IdxDate = @StartDate
	SET @EndDate = STR(year(GETDATE())) + '/' + STR(month(GETDATE())) + '/' + STR(day(GETDATE()))
SET NOCOUNT OFF
 
WHILE @IdxDate <= @EndDate 
BEGIN
 
	INSERT INTO @val2 (poste1)
	SELECT Sum(StateTime)/3600000 as Tempo
	FROM Runtime.dbo.History 
	WHERE TagName IN ('SysPulse') 
	AND Value = 1 
	AND wwRetrievalMode = 'ValueState'
	AND wwStateCalc = 'Total'
	AND wwCycleCount = 100 
	AND wwVersion = 'Latest'
	AND DateTime >= @IdxDate +' 05:00:00'
    AND DateTime < STR(year(@IdxDate)) + '/' + STR(month(@IdxDate)) + '/' + STR(day(@IdxDate+1))+' 13:00:00'
 
	INSERT INTO @val2 (poste2) 
	SELECT Sum(StateTime)/3600000 as Tempo
	FROM Runtime.dbo.History 
	WHERE TagName IN ('SysPulse') 
	AND Value = 1 
	AND wwRetrievalMode = 'ValueState'
	AND wwStateCalc = 'Total'
	AND wwCycleCount = 100 
	AND wwVersion = 'Latest'
	AND DateTime >= @IdxDate +' 13:00:00'
    AND DateTime < STR(year(@IdxDate)) + '/' + STR(month(@IdxDate)) + '/' + STR(day(@IdxDate+1))+' 21:00:00'
 
 
 
	IF @IdxDate >= @EndDate
	BREAK
   ELSE
	SET @IdxDate = DateAdd(dd,1,@IdxDate)
	CONTINUE
END	
 
select * from @val2

Le resultat que j'obtiens est presque celui que je recherche, mais le problème est que le resultat du premier insert n'est pas sur la même ligne que le resultat du second...


Avez vous une idée ?

Merci