Sposób na zbudowanie listy zmiennych na podstawie rekordów tabeli « Wróć do dokumentacji

Poniższe przykładowe zapytanie SQL umożliwia łatwe zbudowanie statycznej listy zmiennych na podstawie rekordów tabeli - poniższy przykład buduje rozdzielaną przecinkami listę na podstawie tabeli Tag. Przydatne przy konieczności wykonania zapytania o dane z historiana dla listy zmiennych które mamy w tabeli sql (nie możemy ich wynienić statycznie)

DECLARE

@List varchar(MAX)
SET @List = ''
SELECT @List = @List + ''''+CONVERT(varchar, Tag.TagName) + ''',' FROM Tag
SELECT LEFT(@List, LEN(@List) - 1)



Przykład zapytania o historię zmiennych z wykorzystaniem dynamicznie skonstruowanej listy zmiennych:

declare

@sql nvarchar(Max)
set @sql = 'DECLARE @StartDate VARCHAR(255)
DECLARE @EndDate VARCHAR(255)
set @StartDate = ''2019-03-24 00:00:00''
set @EndDate = ''2019-03-26 00:00:00''
SELECT temp.TagName, temp.DateTime, temp.Value, temp.Quality, temp1.zmienna FROM
( SELECT History.TagName, DateTime, Value, Quality FROM Runtime.dbo.History
WHERE History.TagName IN (' + @List + ''''') AND vValue IS NOT NULL
AND wwRetrievalMode = ''Average''
AND wwResolution = 60000
AND wwVersion = ''Latest''
AND DateTime >= CAST(@StartDate AS VARCHAR(10))
AND DateTime < CAST(@EndDate AS VARCHAR(10))) as temp
INNER JOIN TableActiveTag_PP as temp1
ON temp.TagName=temp1.Zmienna'

exec

sp_executesql @sql




Słowa kluczowe : transpozycja, lista zmiennych, konwersja listy zmiennych, subquery

	
				
	  	


	

		 

	

					 	
					               		

		               

 		            

		                    		              	

				

Kontakt

12 428 63 00
PL EN