create function [dbo].[function]()
RETURNS @ResultTable TABLE
(
id_tabeli int,
atrybut_opis varchar(1000)
)
as
begin
declare @id_w int
declare @id_p varchar(50)
declare @p int
declare @wynik varchar(1000)
DECLARE C1 CURSOR READ_ONLY
FOR
SELECT distinct id_tabeli , id_atrybut FROM dbo.tabela_1 -- [dbo].[v_r_sprawy_przejete_km]
OPEN C1
FETCH NEXT FROM C1 INTO @id_w, @id_p
WHILE @@FETCH_STATUS = 0
BEGIN
while
len(@id_p) > 0
begin if PATINDEX('%;%', @id_p) > 0
begin
set @p = SUBSTRING(@id_p, 0 , PATINDEX('%;%', @id_p))
set @wynik = (select distinct atrybut_opis
from dbo.tabela_2
where id_atrybut = @p)
insert @ResultTable(id_tabeli, atrybut_opis) values (@id_w, @wynik)
set @id_p = SUBSTRING(@id_p, len(@p)+2, LEN(@id_p))
end
else
begin
set @p = @id_p
set @id_p = null
set @wynik = (select distinct atrybut_opis
from dbo.tabela_2
where id_atrybut = @p)
insert @ResultTable(id_tabeli, atrybut_opis) values (@id_w, @wynik)
end
end
FETCH NEXT FROM C1 INTO @id_w, @id_p
END
CLOSE C1
DEALLOCATE C1
return
end
środa, 9 października 2013
SQL Server - jak z ciągu dzielonego separatorem zrobić kolumny
środa, 20 marca 2013
SSRS SQL 2008R2 ReportServer DB Lista Raportów z parametrami
--lista raportów z parametrami: ;WITH XMLNAMESPACES ( DEFAULT 'http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition', 'http://schemas.microsoft.com/SQLServer/reporting/reportdesigner' AS rd ) SELECT NAME as NazwaRaportu , PATH as SciezkaRaportu , x.value ('@Name', 'VARCHAR(100)') AS NazwaParametru , x.value ('DataType[1]', 'VARCHAR(100)') AS TypDanych , x.value ('AllowBlank[1]', 'VARCHAR(50)') AS CzyPuste , x.value ('Prompt[1]', 'VARCHAR(100)') AS Tekst , x.value ('Hidden[1]', 'VARCHAR(100)') AS Ukryty , x.value ('data(DefaultValue/Values/Value)[1]', 'VARCHAR(100)') AS Wartosc FROM ( SELECT PATH , NAME , CAST(CAST(content AS VARBINARY(MAX)) AS XML) AS ReportXML FROM ReportServer.dbo.Catalog WHERE CONTENT IS NOT NULL AND TYPE = 2 ) A CROSS APPLY ReportXML.nodes('/Report/ReportParameters/ReportParameter') R(x) --WHERE NAME = 'Nazwa Raportu' ORDER BY NAME
Subskrybuj:
Posty (Atom)